我已经多次阅读Yii2文档。我也用谷歌搜索,但找不到任何有用的东西。
问题是我不了解环境文件夹的概念。请让我解释一下:
为什么我必须在environment / dev和environment / prod中复制所有控制器,视图和其他文件?
我实际上必须在哪个文件夹中进行开发?
环境文件夹的部署过程是什么?将更改推送到生产服务器后,是否应该每次都调用init吗?
除非您有非常特殊的需要,否则您很可能会忽略环境文件夹。
所有的代码应该会进入common
,frontend
,console
,或backend
文件夹。common
appart,这些是应用程序的默认可用入口点,您将在其中放置控制器逻辑。显然,您不必全部使用它们,只需frontend
根据您的特定需求使用就可以了。
但话又说回来,如果你选择的是高级模板它可能使用组合..就好说了,common
,backend
和frontend
环境文件夹与运行时具有的选项相对应./init
。就是这样命名:
它们包含您在运行./init
命令时编辑和/或添加的所有文件。其中包括VCS(git)忽略(因此从不创建)的所有文件。
我们正在谈论诸如* -local.php文件之类的文件,出于明显的原因,这些文件永远不应进行版本控制。但是入口脚本也会根据您要初始化的环境而变化。例如,您要在生产中调试,然后在开发中注销,然后注销。这些是您无法在配置文件级别上设置的,因为它们需要在Yii应用程序模型之前进行设置,或者您只是知道每次环境初始化时都需要将其设置为默认设置。
您可以想象添加一个以生产前名称命名的环境,例如,它将与生产环境完全一样地初始化您的应用程序,只是启用了日志记录。为此,您将复制environments/prod
文件夹,根据需要修改输入脚本,然后在中添加选项environments/index.php
。
./init
克隆分支后,只需运行一次。如果您对CI有很高的了解,则您的CI服务器可能需要./init
在每次运行时都运行脚本。不过,这可能取决于您的配置方式。如果对要应用的环境文件夹进行了更改,则需要再次运行它。
您可能已经知道了这一点,但以防万一有人想知道。
./yii controller/action
通常这就是所有魔术发生的地方,无需重复任何代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句