在ThinkPHP中,一般來說應用的配置檔案是自動加載的,加載的順序是:
以上是配置檔案的加載順序,因為後面的配置會覆寫之前的同名配置(在沒有生效的前提下),是以配置的優先順序從右到左。
下面說明下不同的配置檔案的差別和位置:
慣例重于配置是系統遵循的一個重要思想,架構内置有一個慣例配置檔案(位于<code>thinkphp/convention.php</code>),按照大多數的使用對常用參數進行了預設配置。是以,對于應用的配置檔案,往往隻需要配置和慣例配置不同的或者新增的配置參數,如果你完全采用預設配置,甚至可以不需要定義任何配置檔案。
建議仔細閱讀下系統的慣例配置檔案中的相關配置參數,了解下系統預設的配置參數。
應用配置檔案是應用初始化的時候首先加載的公共配置檔案,預設位于<code>application/config.php</code>。
擴充配置檔案是由<code>extra_config_list</code>配置參數定義的額外的配置檔案,預設會加載<code>database</code>和<code>validate</code>兩個擴充配置檔案。
<code>V5.0.1</code>開始,取消了該配置參數,擴充配置檔案直接放入<code>application/extra</code>目錄會自動加載。
每個應用都可以在不同的情況下設定自己的狀态(或者稱之為應用場景),并且加載不同的配置檔案。
舉個例子,你需要在公司和家裡分别設定不同的資料庫測試環境。那麼可以這樣處理,在公司環境中,我們在應用配置檔案中配置:
那麼就會自動加載該狀态對應的配置檔案(預設位于<code>application/office.php</code>)。
場景配置檔案和應用配置檔案<code>config.php</code>是一樣的定義。
如果我們回家後,我們修改定義為:
那麼就會自動加載該狀态對應的配置檔案(位于<code>application/home.php</code>)。
場景配置檔案是可選的
每個子產品會自動加載自己的配置檔案(位于<code>application/目前子產品名/config.php</code>)。
子產品還可以支援獨立的狀态配置檔案,命名規範為:<code>application/目前子產品名/應用狀态.php</code>。
子產品配置檔案是可選的
如果你的應用的配置檔案比較大,想分成幾個單獨的配置檔案或者需要加載額外的配置檔案的話,可以考慮采用擴充配置或者動态配置(參考後面的描述)。
配置檔案一般位于<code>APP_PATH</code>目錄下面,如果需要加載其它位置的配置檔案,需要使用完整路徑,例如:
系統預設的配置定義格式是PHP傳回數組的方式,例如:
如果你定義格式是其他格式的話,可以使用<code>parse</code>方法來導入,例如:
parse方法的第一個參數需要傳入完整的檔案名或者配置内容。
如果不傳入第二個參數的話,系統會根據配置檔案名自動識别配置類型,是以下面的寫法仍然是支援的:
parse方法除了支援讀取配置檔案外,也支援直接傳入配置内容,例如:
支援傳入配置檔案内容的時候 第二個參數必須顯式指定。
标準的ini格式檔案定義:
标準的xml格式檔案定義:
配置類采用驅動方式支援各種不同的配置檔案類型,是以可以根據需要随意擴充。