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

罗曼·波德利诺夫(Roman Podlinov)

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

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

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

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

我实际上必须在哪个文件夹中进行开发?

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

米尔

除非您有非常特殊的需要,否则您很可能会忽略环境文件夹。

所有的代码应该会进入commonfrontendconsole,或backend文件夹。commonappart,这些是应用程序的默认可用入口点,您将在其中放置控制器逻辑。显然,您不必全部使用它们,只需frontend根据您的特定需求使用就可以了。

但话又说回来,如果你选择的是高级模板它可能使用组合..就好说了,commonbackendfrontend

环境文件夹

环境文件夹与运行时具有的选项相对应./init就是这样命名:

  • 0)发展
  • 1)生产

它们包含您在运行./init命令时编辑和/或添加的所有文件其中包括VCS(git)忽略(因此从不创建)的所有文件。

我们正在谈论诸如* -local.php文件之类的文件,出于明显的原因,这些文件永远不应进行版本控制。但是入口脚本也会根据您要初始化的环境而变化。例如,您要在生产中调试,然后在开发中注销,然后注销。这些是您无法在配置文件级别上设置的,因为它们需要在Yii应用程序模型之前进行设置,或者您只是知道每次环境初始化时都需要将其设置为默认设置。

您可以想象添加一个以生产前名称命名的环境,例如,它将与生产环境完全一样地初始化您的应用程序,只是启用了日志记录。为此,您将复制environments/prod文件夹,根据需要修改输入脚本,然后在中添加选项environments/index.php

./init克隆分支后只需运行一次。如果您对CI有很高的了解,则您的CI服务器可能需要./init在每次运行时都运行脚本。不过,这可能取决于您的配置方式。如果对要应用的环境文件夹进行了更改,则需要再次运行它。

通用,控制台和*结束

您可能已经知道了这一点,但以防万一有人想知道。

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

通常这就是所有魔术发生的地方,无需重复任何代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Yii2环境文件夹的要点

Yii2如何访问“根”文件夹中的文件夹?

Yii2中的$ with和$ joinWith有什么区别以及何时使用它们?

Jenkins工作区中的@tmp文件夹是什么以及如何清理它们

如何从 Yii2 的 /web 文件夹中删除文件?

Yii2 Translations在错误的文件夹中查找

如何在Yii2中获取JuiAsset的主题文件夹路径?

Yii2如何显示保存在Web文件夹中的图像

如何在 Yii2 Advanced 中添加新的应用程序文件夹

Yii2 Advanced,什么时候使用前端文件夹,什么时候使用后端文件夹?

yii2-所有文件和文件夹权限被弄乱了。yii2框架的目录层次结构的权限应该是什么

Python中的__future__是什么,以及如何/何时使用它以及如何工作

Python中的__future__是什么,以及如何/何时使用它以及如何工作

Yii2无法写入资产文件夹

Yii2 CSS 到资产文件夹

Yii2按钮url到文件夹

.NET中IIdentity和IPrincipal背后的想法是什么

自动在Yii2中创建文件夹并上传图像

void *是什么意思,以及如何使用它?

符号()=>是什么意思,以及如何使用它?

IP地址0.0.0.1的用途是什么以及如何使用它?

这是什么结构以及如何使用它?

这个符号{$ {`expirydate`}}的含义是什么,以及如何使用它

nestjs typeorm 中的 getRepositoryToken 是什么以及何时使用它?

tinyxml2 的 TiXmlAttribute 等价物是什么以及如何使用它?

netbeans中的标签或功能?它们是什么以及如何使用它们?

Elastic APM中的“ jvm.gc.time”到底是什么,以及如何使用它?

Powershell 中的 _Base 属性是什么以及如何使用它们?

qml controle中的语言环境属性是什么?如何使用它?