jimmyfu 2016-01-10 17:52:38 10978次浏览 2条评论 2 1 0

在配置上一般有以下问题:

  1. 每个团队成员都会有自己的配置项,提交这样的配置项将会影响其他团队成员;
  2. 生产库密码和API密钥不应该出现在代码库中;
  3. 有多个服务器环境的情况:开发、测试、生产;每一种环境应该有自己的配置项;
  4. 每种情况都去定义所有的配置选项,是非常重复且要花大量时间去维护。

为了解决这些问题,yii引入了一种简单的环境概念。每一种环境被一套在environments目录中的文件所表示。init命令用于切换这些环境。它所做的就是从环境目录复制一切交给根目录下的所有应用程序

默认有2套环境:devprod。前者是开发环境,它包含所有的开发工具和调试启用;后者用于服务器部署,它的debug和开发工具都是关闭的。

典型的环境包含应用启动文件(比如index.php)和诸如以-local.php后缀的配置文件。这些或者是团队成员个人的配置(通常用于dev环境),或者是特定服务器的配置。比如,生产库链接就可能在prod环境的-local.php配置中。这些本地的配置文件被添加到.gitignore文件中,以至于不会被提交到源代码库中。

为了避免重复的配置覆盖对方,比如,frontend应用按以下的顺序读取配置:

  1. common/config/main.php
  2. common/config/main-local.php
  3. frontend/config/main.php
  4. frontend/config/main-local.php

Parameters按以下的顺序读取配置:

  1. common/config/params.php
  2. common/config/params-local.php
  3. frontend/config/params.php
  4. frontend/config/params-local.php

后面的配置文件会覆盖掉前面的配置文件

下面是完整的方案:
advanced-app-configs

原英文链接:https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/structure-environments.md

觉得很赞
您需要登录后才可以评论。登录 | 立即注册