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

后面的配置文件會覆蓋掉前面的配置文件

 

調用時,用以下命令,即可調用配置

yii\base\Application::params

該屬性為一個數組,指定可以全局訪問的參數,代替程序中硬編碼的數字和字符,應用中的參數定義到一個單獨的文件並隨時可以訪問是一個好習慣。 例如用參數定義縮略圖的長寬如下:

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

 

然后簡單的使用如下代碼即可獲取到你需要的長寬參數:

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

 

這樣就可以自定義一些參數,  或通過file_put_contents  來隨時寫入配置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM