thinkphp5 讀取配置文件屬性

 

配置文件優先等級

        加載順序:

                 慣例配置->應用配置->擴展配置->場景配置->模塊配置->動配置態

        優先級:

                 動配置態 > 模塊配置 > 場景配置 > 擴展配置 > 應用配置 > 慣例配置

        從右往左,右邊配置文件 的配置會 覆蓋 左邊配置文件 的配置

一、慣例配置

        路徑:thinkphp/convention.php

        一般情況下,不對慣例配置進行修改!

二、應用配置

        路徑:application/config.php

三、擴展配置(對配置文件分目錄管理)

        1、數據庫配置

              路徑:application/database.php

         2、自定義擴展配置

              路徑:extend目錄下,新建配置項文件

四、場景配置(不同場景,讀取不同的配置文件)

          配置修改:

                  修改應用配置文件application/config.php中的app_status屬性值,然後在config.php同級目錄下,新建名爲‘name1’的配置文件。該配置文件可以有多個,根據不同場景,賦予app_status不同的配置屬性

  // 應用模式狀態
    'app_status'     => 'name1',

五、模塊配置(不用模塊讀取不同配置文件)

       根據應用模塊的不同(如前臺頁面模塊和後臺管理系統模塊),單獨調用不同的配置文件。

        例如,在application/index目錄下,新建一個config.php文件,前臺模塊自動讀取該配置文件內的配置參數;

         同理。在application/admin目錄下,新建一個config.php文件,後臺模塊自動讀取該配置文件內的配置參數。

六、動態配置(臨時性的配置)

        通過config()等方法,在代碼文件中,修改配置文件的某個屬性的值:

config('name','newname');//修改配置文件的原屬性的值

七、環境變量

         創建:

                 在根目錄下,創建 .env 文件(通過編輯器創建),書寫規範(不能使用中文)

namme='zhangsan'
age=12

//或者
[database]
type='mysql'
root='root'

          調用:

                  通過Env類調用(可以在前面6個配置文件中,引入環境變量,通過修改環境變量,從而達到修改配置文件的效果)

use \think\Env ; //引入環境變量

//  Env::get('name');
//  Env::get('database.type');

//屬性不存在
//Env::get('屬性名稱','不存在屬性值');


  // 數據庫類型
    'type'            => Env::get('database.type'),

 

讀取配置文件 

在慣例配置文件中添加如下配置:

 //自定義配置
//單個配置信息
    'name' => 'zhangsan',
    'age' => 30,

//數組型配置信息
 'teacher' => [
        'name'    => 'xiaowang',
        'age' => 29,
    ],

        1、通過系統方法調取:

//單個配置屬性
$conf = config('name');

//數組配置,返回數組
 $conf = config('teacher');

//返回數組配置下的某一項屬性
$conf = config('teacher.name');

       2、通過系統類調用

//引用類
use \think\Config;

//調用類方法
$conf = Config::get('age');

//數組配置,返回數組
 $conf = Config::get('teacher');

//返回數組配置下的某一項屬性
$conf = Config::get('teacher.name');


//或者直接調用類裏面的方法
$conf = \think\Config::get('age');

//數組配置,返回數組
 $conf = \think\Config::get('teacher');

//返回數組配置下的某一項屬性
$conf = \think\Config::get('teacher.name');

         3、調用擴展配置項

config('擴展文件名'.'屬性');
config('擴展文件名');//該擴展配置的所有內容

config('database.hostname');//數據庫擴展配置
config('自定義擴展配置名'.'屬性');//自定義擴展配置

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章