Yii2:如何准备调试和生产环境?

我知道 Yii 定义并使用常量YII_DEBUGYII_ENV。当然,它们在我的本地计算机上设置为“true”和“dev”。这是因为基本应用模板已在索引.php文件中以这种方式准备了它。此文件还告诉我,我应该删除生产模式下的这些行,即在生产计算机上。然后,默认情况下,这些常量设置为“false”和“prod”。没关系,我理解。(有关详细信息,请参阅定义常量和环境常量

我的问题:当索引.php包含在VCS中时,我该如何最好地处理这些常量?在一个环境中,它们应该存在,而在另一个环境中则不存在。当然,它也可以是一台测试机器。我有哪些选择?我认为这也是部署方法的问题。目前,我只是通过Git推送到生产机器,什么是原始部署IMO...

你是怎么做到的?你有什么建议?

编辑:实际上,处理参数文件是相同的问题。


答案 1

这是我的解决方案:

if ($_SERVER['SERVER_NAME'] == 'localhost' || $_SERVER['SERVER_NAME'] == '127.0.0.1') {
  defined('YII_DEBUG') or define('YII_DEBUG', true);
  defined('YII_ENV') or define('YII_ENV', 'dev');
}

同样对于 Heroku,在 Heroku 上设置 Yii2 Advanced


答案 2

Yii2(或者至少是高级应用程序模板)有一个“”系统。在此文件夹中,您可以存储每个环境更改的文件。environments

这些文件通常是您的引导文件()和“本地”配置文件(覆盖主配置的内容)。index.php

应用模板还具有允许你切换的“”命令。init

基本上,发生的事情是将整个-文件夹添加到VCS,但是您忽略了这些文件应该结束的位置(如Ankit已经声明的那样)。这样,您就可以将 VCS 中所有不同的环境相关配置彼此相邻。environments

有关详细信息,请参阅此处,有关此文件夹的外观示例,请参阅此处


推荐