Yii2环境文件夹背后的想法是什么以及如何使用它?

Rom*_*nov 14 yii2 yii2-advanced-app

我已多次阅读Yii2文档.我也谷歌搜索,我找不到任何有用的东西.

问题是我不了解环境文件夹的概念.请让我解释一下:

  1. 我可以在Git中使用分支(用于开发,分段和生产)
  2. *-local.conf文件被Git忽略,无论如何它们都不会被推送到升级或生产

为什么我必须复制环境/ devenvironment/prod中的所有控制器,视图和其他文件?

我实际上要在哪些文件夹中进行开发?

环境文件夹的部署过程是什么?我每次将更改推送到生产服务器后都应该调用init吗?

D.M*_*ill 19

您很可能会忽略环境文件夹,除非您有非常具体的需要.

你所有的代码应该会进入common,frontend,console,或backend文件夹.commonappart,这些是您的应用程序的默认可用入口点,您将放置控制器逻辑.你显然不必全部使用它们,只需frontend根据你的具体需要使用即可.

但是,如果你选择高级模板,它可能会使用一个组合......比如说common,backendfrontend

环境文件夹

环境文件夹对应于运行时的选项./init.这就是名字:

  • 0)发展
  • 1)生产

它们包含运行./init命令时编辑和/或添加的所有文件.这些包括VCS(git)忽略(因此从未创建)的所有文件.

我们正在谈论像*-local.php这样的文件,出于显而易见的原因,永远不应该对其进行版本控制.但是,根据您正在初始化的环境而改变的条目脚本也是如此.例如,您希望在生产中调试和注销,但在开发中.这些是您无法在配置文件级别设置的内容,因为它们需要在Yii应用程序模型之前设置,或者您知道每次初始化环境时都需要默认设置.

您可以想象通过预生产的名称添加另一个环境,例如,除了启用日志记录之外,它将完全像生产环境一样初始化您的应用程序.为此,您将复制environments/prod文件夹,根据需要修改条目脚本,并添加选项environments/index.php.

./init克隆分支后,只需要运行一次.如果你对CI很重要,那么你的CI服务器可能需要./init在每次运行时运行脚本.这可能取决于您如何配置它.如果您对要应用的环境文件夹进行了更改,则需要再次运行它.

常见,控制台和*结束

你可能已经知道了,但只是因为有人想知道.

  • common:包含所有应用程序共有的逻辑,从配置文件到模型
  • 前端:与您的前端Web界面相关的所有内容,也可以拥有自己的模型等.
  • 后端:与上面相同但允许前端和后端应用程序之间的单独逻辑.
  • console:用于通过命令行访问您的应用程序 ./yii controller/action

这通常是所有魔法发生的地方,不需要复制任何代码.