第四課 TP5框架配置詳解


 

4.1 為什么需要配置文件

通常在框架當中很多的固定的參數,初始化參數,並不是我們直接在使用時添加,一些通用的參數,需要固定的位置存放,然后調用時到固定的地方獲取,而不是重復的定義

4.2 有哪些配置文件

慣例配置:核心框架內置的配置文件,無需更改。

應用配置:每個應用的全局配置文件(框架安裝后會生成初始的應用配置文件),有部分配置參數僅能在應用配置文件中設置。

模塊配置:每個模塊的配置文件(相同的配置參數會覆蓋應用配置),有部分配置參數模塊配置是無效的,因為已經使用過。

動態配置:主要是指在控制器或者行為中進行(動態)更改配置,該配置方式只在當次請求有效,因為不會保存到配置文件中。

4.3 配置文件在哪

Thinkphp慣例配置存放在thinkphp/convention當中,所謂的慣例配置就是thinkphp根據一些用戶慣用的配置去寫的配置項

慣例配置:核心框架內置的配置文件

應用配置:每個應用的全局配置文件

模塊配置:每個模塊的配置文件

動態配置:(代碼當中修改)主要是指在控制器或者行為中進行(動態)更改配置,該配置方式只在當次請求有效,因為不會保存到配置文件中。

4.4 系統配置文件說明

4.5 配置的格式

可以直接在相應的應用或模塊配置文件中修改或者增加配置參數,如果你要增加額外的配置文件,直接放入應用或模塊配置目錄即可(文件名小寫)。

4.5.1 數組定義

返回PHP數組的方式是默認的配置定義格式,例如:

return [
    // 默認模塊名
    'default_module'         => 'index',
    // 禁止訪問模塊
    'deny_module_list'       => ['common'],
    // 默認控制器名
    'default_controller'     => 'Index',
    // 默認操作名
 'default_action'         => 'index'
]; 

配置參數名請使用小寫的形式,定義多級

'info'=>[
        'name'=>'peter',
        'age'=>'18'
]

4.5.2 其他配置格式支持

默認的配置文件都是PHP數組方式,如果你需要使用其它格式的配置文件,你可以通過改變CONFIG_EXT環境變量的方式來更改配置類型。

支持的配置類型包括.ini.xml.json 、.yaml .php 在內的格式支持,配置后應用配置及模塊配置必須統一使用相同的配置類型(了解,一般創建一種類型就可以)

4.5.3 創建一個.env格式的文件,在項目根目錄

在框架應用加載的過程當中,會首先加載.env格式的配置,會去讀取相關的配置信息(查看源碼)

Ini格式的

4.5.4 環境變量配置和使用

我們通過學習Thinkphp5環境變量的配置,來搭建出符合我們平時開發中使用的運營環境,比如說開發環境,上線環境使用的配置是不一樣的

注意,環境變量不支持數組參數,如果需要使用數組參數可以,使用下划線分割定義配置參數

4.5.5 獲取環境變量的值可以使用下面的兩種方式獲取:

Env::get('database.username');
  Env::get('database.password');
 // 同時下面的方式也可以獲取
  Env::get('database_username');
  Env::get('database_password');
/ 獲取環境變量 如果不存在則使用默認值root
Env::get('database.username','root');

注意:環境變量當中的結果是大寫的,但是獲取的時候使用小寫

4.6 配置有效性

並不是所有的配置都會有效果,某些配置在特定的文件目錄下才會有效果

下列配置參數在模塊配置中定義(包括動態配置)無效,而必須在應用配置中設置

由於架構設計原因,下面的配置只能在環境變量中修改。

4.7 配置獲取

4.7.1 使用Config類獲取

引入命名空間

use think\facade\Config;

讀取配置信息

echo Config::get('配置參數1');

讀取某個一級配置的所有配置參數

Config::get('app.');

判斷是否存在某個設置參數:

Config::has('配置參數2');

4.7.2 使用助手函數獲取

echo config('配置參數1');

支持獲取多級配置參數值,直接使用(必須從一級開始寫)

config('app.name1.name2')

4.8 動態設置

使用助手函數設置,只能在當前的請求當中有作用

config('配置文件名.配置參數','配置值');

動態設置的參數,最多支持二級

config([
      'title'=>'peter的網站',
      'info'=>'簡介信息'
     ],'app');

4.9 配置的優先級

ThinkPHP遵循慣例重於配置的原則,系統會按照下面的順序來加載配置文件(配置的優先順序從右到左)。

會覆蓋掉之前的配置

 

4.10 配置文件加載原理解析(了解)

通過分析thinkphp5.1的源碼了解下框架的配置文件,是什么時候讀取到的,為什么我們能在框架當中讀取配置文件當中的內容,以及配置的優先級順序

start.php當中加載慣例配置

執行run方法

執行initialize

加載環境變量配置

加載應用配置以及模塊配置


免責聲明!

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



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