CI原始碼分析(一)—config配置檔案模組
阿新 • • 發佈:2019-01-27
(一) 使用方式
(a) 系統級配置
語言、字元編碼、session、cookie等配置項
, 路徑是application/core/MY_Config.php
- 檔案位置: application/config/config.php
- 載入方式: 自動載入
- 呼叫方式: $this->config->item(‘config_item_key');
- 檔案位置: application/config/path/to/config_file.php
- 載入方式: 手動載入(或者在autoload.php中配置自動載入).$this->config->load(‘path/to/config_file’, true).第二個引數,會把不同檔案的配置分組, 強烈建議加上.
- 呼叫方式: $this->config->item(‘config_item_key’, 'path/to/config_file’); 第二個引數是上面載入的時候指定的分組
- 單個修改: $this->config->set_item(‘config_item_key’, $value);
- 批量修改: $this->config->_assign_to_config($array);
- get_config: require檔案application/config/config.php檔案,儲存在區域性靜態變數$_config中,所以也是一次載入。這裡需要注意的是因為載入的是必須的配置檔案config.php,所以使用了require,來進行錯誤處理
- config_item: 獲取載入過的配置項
- __construct: 預設先載入application/config/config.php檔案,呼叫Common.php檔案中的函式get_config
- load: 根據傳入的引數$file,分別在config/ENVIRONMENT/$file和config/$file中尋找目標配置檔案,優先載入當前ENVIRONMENT下的配置檔案。找到配置檔案後會把對應的配置陣列merge到已經載入的配置中。這裡要十分注意,一旦兩個不同的配置檔案中存在相同的配置key,又沒有指定配置項分組,前面載入的配置項就會被覆蓋,所以強烈建議,每次load配置檔案都指定第二個引數use_section
- config_item: 返回已經載入的配置項, 沒找到(確實沒有的配置項和未載入的配置項)則返回false。
- 每次使用$this->config->item(),獲取配置項時,有可能因為沒有load過對應的配置檔案,所以建議load then item, 或者全部配置檔案都配置上autoload。這裡我自己實現了一個my_item方法my_item($file, $item), 不需要先載入後呼叫。方法內部會先呼叫,沒有結果會嘗試載入一次,然後再次呼叫並返回結果,一定程度上簡化了程式碼, 而且不需要配置autoload。路徑是application/core/MY_Config.php。
- 支援目錄分級, 方便清晰的組織、管理業務配置檔案