zoukankan      html  css  js  c++  java
  • yii2 配置文件加载顺序, 以及调用自定义配置信息。

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

    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

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

    调用时,用以下命令,即可调用配置

    yiiaseApplication::params

    该属性为一个数组,指定可以全局访问的参数,代替程序中硬编码的数字和字符,应用中的参数定义到一个单独的文件并随时可以访问是一个好习惯。 例如用参数定义缩略图的长宽如下:

    [
        'params' => [
            'thumbnail.size' => [128, 128],
        ],
    ]

    然后简单的使用如下代码即可获取到你需要的长宽参数:

    $size = Yii::$app->params['thumbnail.size'];
    $width = Yii::$app->params['thumbnail.size'][0];

    这样就可以自定义一些参数,  或通过file_put_contents  来随时写入配置。

  • 相关阅读:
    (DT系列五)Linux kernel 是怎么将 devicetree中的内容生成plateform_device【转】
    Linux 内核虚拟地址到物理地址转换讨论【转】
    【Go命令教程】6. go doc 与 godoc
    【Go命令教程】5. go clean
    【Go命令教程】4. go get
    PHP项目收藏
    【Go命令教程】3. go install
    分享下使用 svn,测试服务器代码自动更新、线上服务器代码手动更新的配置经验
    【Go命令教程】2. go build
    【Go命令教程】1. 标准命令详解
  • 原文地址:https://www.cnblogs.com/cocoliu/p/5170944.html
Copyright © 2011-2022 走看看