2019-02-14 14:29:46 2596次浏览 3条回答 0 悬赏 85 金钱

environments 配置文件,看了下介绍,感觉还不是很理解,即我跑了 init 文件后,自动切换到 dev 或者 prod 的配置吗?例如切换到 prod,是将 prod 文件下的各个 config 配置写入到各个模块里面去吗,还是只是使用 environments 配置文件里的配置,配置的优先级应该是怎么排的?

最佳答案

  • 墨轩娣 发布于 2019-02-14 18:38 举报

    执行init,然后选择dev或者prod,会做以下操作:
    1.将environments目录下对应目录(比如dev)的所有文件复制到项目根目录下;
    2.给几个文件(main-local.php)设置cookieValidationKey值;
    3.设置目录可写(runtime);
    4.设置文件可执行(yii);
    具体的你可以查看environments/index.php中的注释部分。

    2 条回复
    回复于 2019-02-14 18:41 回复

    至于你说的配置文件的优先级,你可以看看入口文件index.php的加载流程:

    $config = yii\helpers\ArrayHelper::merge(
        require __DIR__ . '/../../common/config/main.php',
        require __DIR__ . '/../../common/config/main-local.php',
        require __DIR__ . '/../config/main.php',
        require __DIR__ . '/../config/main-local.php'
    );
    

    ArrayHelper::merge()方法会将require到的配置数组合并,并且是后面的覆盖前面的。
    所以,骚年,你明白了吗?

    回复于 2019-02-17 13:09 回复

    谢谢大佬!

您需要登录后才可以回答。登录 | 立即注册
zcx147716565
CEO

zcx147716565 广州

注册时间:2017-03-10
最后登录:2021-01-12
在线时长:69小时38分
  • 粉丝9
  • 金钱12500
  • 威望20
  • 积分13390

热门问题