配置你的應用程式

簡介

FuelPHP 框架是以配置慣例的想法建成。這樣的結果是你可以在一個高度可自訂的基礎上, 開始建立你的應用程序。

配置檔案儲存在 app/config 文件夾裡。 應用程式的基本配置在 app/config/config.php 完成。 載入的配置可依特定環境改變,更多關於此在 環境

要覆寫功能相關配置的設定,在 app/config 建立一個新檔案, 或從 core/config 複製相應的檔案到 app/config。

配置選項

這些是可以被定義在應用程式中的基本配置檔案 app/config/config.php 的選項。 當你剛裝好 FuelPHP 時,這個檔案是空的。所有如下定義的預設值, 被定義在 core/config 文件夾中的相應檔案。當你想要覆寫一個預設值時,在你的應用程式配置檔案中添加該鍵到陣列, 並修改值。或者,從核心檔案複製該段落到應用程式檔案, 並修改它。

FuelPHP 使用 "句點表示法" 處理陣列。它是一種方便存取一個多維陣列元素的方式。 此表示法也用於文件中,因為它提供簡單的陣列類型參照。例如:

// 當你看見 "always_load.packages = array()",它是以下的簡寫:
array("always_load" => array("packages" => array(...) ) );
類型 預設 描述
base_url 字串
null
應用程式的基礎 URL。可以是相對的。必須包含一個斜線。('/foo/'、'http://example.com/')
url_suffix 字串
''
任何需要被添加到 Fuel 產生的 URL 的後綴。如果後綴是一個副檔名, 確認包含點('.html')。
index_file 字串
'index.php'
主引導程序的檔案名稱。如果你使用 mod_rewrite,設為 false 或移除。
controller_prefix 字串
'Controller_'
當對應 URI 到控制器類別名稱時用來尋找控制器的類別前綴。 如果你想要你的控制器有命名空間或在不同於 app/classes/controller 的文件夾,你必須變更它。
profiling 布林
false
是否啟用分析器。
cache_dir 字串
APPPATH.'cache/'
要儲存快取檔案的資料夾,此資料夾必須是可寫入的。
caching 布林
false
是否啟用檔案 finder 快取。
cache_lifetime 整數
3600
檔案 finder 快取存活時間(秒)。
ob_callback 回呼(callback)
null
給 ob_start() 的回呼(callback),設為 ob_gzhandler 以啟用 gzip 輸出編碼。
errors 陣列 陣列,包含配置鍵以控制檢測到錯誤時的行為:
errors.continue_on 陣列
array(
)
在哪一種 php 錯誤繼續執行。見錯誤處理
errors.throttle 整數
10
在我們停止顯示前要顯示多少錯誤。(預防記憶體不足錯誤)
errors.notices 布林
true
是否顯示 notices。
language 字串
'en'
預設的應用程式語言,由 Lang 類別 使用。
locale 字串
'en_US'
在一些 php 安裝需要給 setlocale() 使用,設定為 false 以防止被設定。
每種 OS 的設定語法會不同,例如 Ubuntu 需要一個 .utf8(編碼)後綴。
encoding 字串
'UTF-8'
應用程式的預設字元編碼。
server_gmt_offset 整數
0
當 time() 使用時,伺服器與 GMT 時間戳記以秒為單位的偏移量。
這僅僅是為了改正錯誤的伺服器配置:time() 應始終回傳自 January 1 1970 00:00:00 GMT 以來的秒數。
default_timezone 字串
'UTC'
伺服器時區。

如果你設定這個值,請 務必 確保該時區配置與你伺服器上設定的時區相符。 因為時區計算的運作藉由轉化為 GTM,當你時區不相符時,它將導致嚴重錯誤。 由於不正確的過期時間計算,將造成在你應用程式中的時間顯示不正確,以及 cookie/session 的問題!

log_threshold 整數
Fuel::L_WARNING
記錄的門檻。什麼等級的訊息要記錄,或一個應該被記錄的特定訊息等級的陣列。閱讀關於可能的值
log_path 字串
APPPATH.'logs/'
儲存紀錄的資料夾,此資料夾必須為可寫入的。
log_date_format 字串
'Y-m-d H:i:s'
在紀錄中使用的時間/日期格式。
 
security 陣列 陣列,包含配置鍵以控制你的應用程式安全:
security.csrf_autoload 布林
false
是否自動檢查 CSRF 符記。閱讀更多關於 CSRF
security.csrf_token_key 字串
'fuel_csrf_token'
當檢查 CSRF 符記時取回的 $_POST 鍵。
security.csrf_expiration 整數
0
設定 CSRF cookie 的到期時間。任何大於 0 的秒數 cookie 將過期。
security.token_salt 字串
'put your salt value here to make the token more secure'
用來確保產生的安全符記是不可預測的鹽。
security.allow_x_headers 布林
false
允許 Input 類別在呈現時使用 "X" 表頭,例如 HTTP_X_FORWARDED_FOR 或 HTTP_X_FORWARDED_PROTO。
security.uri_filter 陣列
array('htmlentities')
要用來過濾 URI 的 PHP 函式。
security.input_filter 陣列
array()
用來過濾輸入陣列($_GET、$_POST 和 $_COOKIE)的 PHP 函式。可以被設為 xxs_clean, 根據輸入的大小可能導致效能損失。
security.output_filter 陣列
array()
用來過濾設定給檢視變數的 PHP 函式。可以被設為 xxs_clean, 根據變數的大小可能導致效能損失。
security.auto_filter_output 布林
true
是否自動編碼(htmlentities)檢視資料。
security.whitelisted_classes 陣列
array(
'stdClass',
'Fuel\\Core\\View',
'Fuel\\Core\\Presenter',
'Closure'
)
隨著輸出編碼打開,所有傳遞的物件將被轉換為字串或拋出例外, 除非它們是此陣列中類別的實例。
 
cookie 陣列 陣列,包含配置鍵定義全域的 cookie 設定:
cookie.expiration 整數
0
在 cookie 到期前的秒數。
cookie.path 字串
'/'
限制 cookie 可用的路徑。
cookie.domain 字串
null
限制 cookie 可用的網域。
cookie.secure 布林
false
只透過安全連線傳輸 cookie。
cookie.http_only 布林
false
只透過 HTTP 傳輸 cookie,停用 javascript 存取。
module_paths 陣列
array()
指向模組目錄的路徑。當添加一個模組沒有指定位置時使用。
 
always_load 陣列 陣列,包含框架初始化時必須載入的項目:
always_load.packages 陣列
array()
那些套件要自動載入。像這樣指定:array('package')array('package' => PKGPATH.'path/to/package')為了讓它運作,套件路徑必須在 package_paths 被設定
always_load.modules 陣列
array()
那些模組要自動載入。像這樣指定:array('package')。自動載入的模組可藉由 URL 存取。為了讓它運作,模組路徑必須在 module_paths 被設定
always_load.classes 陣列
array()
哪些類別要自動載入和初始化。當你想要從套件或模組自動載入一個類別時, 確保那些也被自動載入了!
always_load.config 陣列
array()
哪些配置檔案要自動載入。像這樣載入一個配置檔案進入群組:array('config')array('filename' => 'group')。如果你不想載入檔案進入群組,設定群組名稱為 nullarray('filename' => null)
always_load.language 陣列
array()
哪些語言檔案要自動載入。像這樣載入一個語言檔案進入群組:array('lang')array('filename' => 'group')。如果你不想載入檔案進入群組,設定群組名稱為 nullarray('filename' => null)

與配置檔案/設定的互動是透過使用 Config 類別達成。 配置檔案也可以使用 Oil 產生。