配置你的应用程序

简介

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 產生。