アプリケーション設定

まずはじめに

FuelPHP フレームワークは規約より設定を重視して設計されています。そのため、高いカスタマイズ性を持つ 基盤の上にアプリケーションを構築することができます。

設定ファイルは app/config フォルダ内にあります。アプリケーションの基本設定は app/config/config.php で設定されています。読み込まれた設定は環境を指定することができます。 詳細は 環境 を見てください。

特定の設定ファイルが提供する設定内容を上書きするには、app/config 内に新しいファイルを作成するか、 対応するファイルを core/config から app/config にコピーして下さい。

設定オプション

アプリケーションのファイル app/config/config.php に基いて定義される設定項目があります。 FuelPHP をインストールした時点では、このファイルは空の状態です。 以下に定義されているように、全てのデフォルト値は core/config フォルダ内の対応するファイルにより定義されています。 デフォルトの値をオーバーライドしたい場合、app の config ファイル内の配列にキーを追加して値を修正して下さい。 または、app のファイルにコアファイルから部分をコピーしてきて修正することもできます。

FuelPHP は配列を処理する際に "ドット表記" を使っています。これは、多次元配列の要素にアクセスするのに便利な方法です。 この表記法はドキュメンテーションにも用いられており、配列への参照をタイプするのを容易にしています。例えば:

// "always_load.packages = array()" とある場合、これは以下の略記となります:
array("always_load" => array("packages" => array(...) ) );
キー デフォルト 説明
base_url string
null
アプリケーションのベース URL。相対指定することもできます。末尾は必ずスラッシュにする必要があります。('/foo/', 'http://example.com/')
url_suffix string
''
Fuel によって生成される URL に追加するサフィックス。 サフィックスが拡張子の場合、ドットを含める必要があります。 ('.html')
index_file string
'index.php'
メインブートストラップファイル名です。 mod_rewirte を使用する場合は、これを false にするか削除します。
profiling bool
false
プロファイラを有効にするかどうか
profiling_paths mixed
array(
	    'APPPATH' => APPPATH,
	    'COREPATH' => COREPATH,
	    'PKGPATH' => PKGPATH,
),
Array of path-to-string translations, to hide the absolute path, and to shorten the path being displayed (for layout purposes).
cache_dir string
APPPATH.'cache/'
キャッシュファイルを保存するディレクトリ。このディレクトリを書き込み可能にする必要があります。
caching bool
false
キャッシュを有効にするかどうか
cache_lifetime int
3600
キャッシュファイルの生存期間を秒単位で指定します。
ob_callback callback
null
ob_start() に与えられるコールバックで、gzip 圧縮による出力を可能にする ob_gzhandler に設定される。
errors Array, containing the configuration keys to control behaviour when detecting errors:
.continue_on array
array(
)
どの PHP エラーが発生したときに実行を続けるか。 エラー処理 を参照してください。
.throttle int
10
表示を止める前に出力するエラーの数 (out-of-memory エラーを避けます)
.notices bool
true
notice を表示するかどうか
 
language string
'en'
アプリケーションのデフォルトの言語。 Lang クラス で使用します。
language_fallback string
'en'
This language code will be used when the requested language file doesn't exist in the active language. This should be your main application language.
locale string
'en_US'
PHP のインストールで必要な setlocale() を使用する場合、セットしている設定を禁止するために false をセットします。
この構文設定は OS 毎に異なります。例えば、Ubuntu は .utf8 (エンコーディング) サフィックスが必要です。
encoding string
'UTF-8'
アプリケーションのデフォルトの文字エンコード
server_gmt_offset int
0
time() を使用する際に、サーバの gmt タイムスタンプのオフセットからのオフセット秒数
これは、不適切なサーバ設定を訂正するためのみの設定です: time() は絶えず 1970年1月1日 00:00:00 GMT からの秒数を返すべきです。
default_timezone string
null
サーバのタイムゾーン。 If set to null, the timezone configured in your php.ini file will be used.

この値を設定する場合、タイムゾーンの設定があなたのWebサーバに設定されているタイムゾーンに一致することを必ずしっかりと確認して下さい。 タイムゾーンの計算はグリニッジ標準時に変換することで動作しているため、タイムゾーンがずれているととんでもなくおかしなことになります。 時間の表示も正しく表示されなかったり、クッキーやセッションが期限切れであると誤って計算されてしまうでしょう。

log_threshold int
Fuel::L_WARNING
ログの閾値。どのレベルのメッセージからログを取るか、またはログを取りたいレベルの配列。 取り得る値について
log_file string
null
The file the log needs to be written to. If not given, a filename will be generated.
log_path string
APPPATH.'logs/'
ログを保存するディレクトリ。このディレクトリを書き込み可能にする必要があります。
log_date_format string
'Y-m-d H:i:s'
ログで使用される date/time の書式。
cli_backtrace bool
false
If true, a backtrace will be printed when a PHP fatal error is encountered in CLI mode (similar to the html error pages).
security Array, containing the configuration keys to control your application security:
.csrf_autoload bool
false
csrf トークンを自動的にチェックするかどうか。 csrf についてはこちらを読んでください
.csrf_autoload_methods array
array(
	'post', 'put', 'delete'
)
List of HTTP methods for which csrf token auto-checking will happen.
.csrf_bad_request_on_fail bool
false
If true, an HttpBadRequestException will be thrown. If false, a SecurityException will be thrown. It is false by default for backward compatibility reasons.
.csrf_auto_token bool
false
If true, a hidden csrf token input field will be automatically added to each form created using Form::open().
.csrf_token_key string
'fuel_csrf_token'
csrf トークンをチェックするときに、取得する $_POST キー。
.csrf_expiration int
0
csrf クッキーの有効期限を指定。 0 より大きな値はすべて クッキーの有効期限までの秒数です。
.csrf_rotate bool
true
If true, the CSRF token is always rotated after token validation, no token will be reused. If false, tokens will be reused until they expire, or until Security::set_token(true) is called to manually rotate it.
.token_salt string
'put your salt value here...'
生成されるトークンを予測しにくくするためのソルト
.allow_x_headers bool
false
"X" headers が存在するときに Input クラスから使用可能にするかどうか。 HTTP_X_FORWARDED_FOR や HTTP_X_FORWARDED_PROTO など。
.uri_filter array
array('htmlentities')
What php callables to use to filter the URI.
.input_filter array
array()
What php callables to use to filter the input arrays ($_GET, $_POST and $_COOKIE). Can be set to xss_clean, but this may cause a performance hit based on the size of the input.
.output_filter array
array()
What php callables to use to filter the variables set onto a view. Can be set to xss_clean, but this may cause a performance hit based on the size of the variables.
.htmlentities_flags integer
ENT_QUOTES
Whether to automatically encode (htmlentities) view data.
.htmlentities_double_encode bool
false
Whether or not to encode HTML entities as well.
.auto_filter_output bool
true
自動的にデータをエンコード (htmlentities) するかどうか
.filter_closures bool
true
If true, closures passed onto Views will be executed, and their return value will be filtered and passed on to the View. If false, the closure itself will be passed to the view.
.whitelisted_classes array
array(
	'stdClass',
	'Fuel\\Core\\View',
	'Fuel\\Core\\Presenter',
	'Closure'
)
出力エンコーディングがオンになった場合、この配列の中のクラスのインスタンスでない限り、 渡された全てのオブジェクトが文字列に変換されるか、例外をスローします。
.form-double-urlencoded bool
false
Set this to true of your client sends data using the HTTP PUT, DELETE or PATCH methods using the www-form-urlencoded content-type, and it's contents is urlencoded locally before submitting.
.clean_paths mixed
array(
),
Array of path-to-string translations, to hide the absolute path, and to shorten the path being displayed in any output. Note that for security reasons, APPPATH, COREPATH, PKGPATH, and DOCROOT will always be translated.
 
cookie Array, containing the configuration keys to define the global cookie settings:
.expiration int
0
クッキーが期限切れになるまでの秒数
.path string
'/'
クッキーが有効なパスを制限する
.domain string
null
クッキーが有効なドメインを制限する
.secure bool
false
セキュアな接続でのみクッキーを送信する
.http_only bool
false
Javascript 接続を無効にし、 HTTP だけでクッキーを送信する
 
validation Array, containing the configuration keys to control validation behaviour :
.global_input_fallback bool
true
Whether to fallback to global inout data when a value is not found in the input array passed to validation.
 
controller_prefix string
'Controller_'
The class prefix used to find controllers when mapping the URI to the controller class name. You have to change this if you want your controllers namespaced or in a different folder then app/classes/controller.
routing Array, containing the configuration keys to control routing behaviour :
.case_sensitive bool
true
Whether URI routing is case-sensitive or not. If true, "/THIS" and "/this" are different routes.
.strip_extension mixed
true
If false, nothing will be stripped. If true, all extensions will be stripped. If an array, it should contain a list of extensions (including the leading DOT!) that needs to be stripped.
.module_routes bool
false
When true, the modules routes config file is loaded and added to the global routing table when you load the module.
 
response Array, containing the configuration keys to control response behaviour :
.redirect_with_wildcards bool
true
If true, you can use the "*" as a segement wildcard when redirecting. These segments will then be filled in from the original request URI. So a redirect on "admin/user/edit" to "*/*/view" will redirect to "admin/user/view".
 
config Array, containing the configuration keys to control the configuration environment :
.database string
null
The database that stores your configuration data table, if you have opted to use the database as you configuration data backend.
.table_name string
'config'
The table that stores your configuration data, if you have opted to use the database as you configuration data backend.
.memcached array
array('identifier' => 'config',
	'servers' => array(
		array(
			'host' => '127.0.0.1',
			'port' => 11211,
			'weight' => 100),
	),
)
Memcached configuration, if you have opted to use a memcached store as you configuration data backend.
 
lang Array, containing the configuration keys to control the language environment :
.database string
null
The database that stores your translation data table, if you have opted to use the database as you translation data backend.
.table_name string
'config'
The table that stores your translation data, if you have opted to use the database as you translation data backend.
 
module_paths array
array(APPPATH.'modules'.DS)
モジュールのディレクトリへのパス。場所を指定せずにモジュールを追加するときに使われます。
package_paths array
array(PKGPATH)
Paths to package directories. Used when adding a package without specifying the location.
always_load Array, containing the items the framework has to load when it initializes:
.packages array
array()
どのパッケージをオートロードするか。 array('package') あるいは array('package' => PKGPATH.'path/to/package') のように指定します。これが動作するためには、パッケージのパスが package_paths で設定されていなければなりません。
.modules array
array()
どのモジュールをオートロードするか。次のように指定します: array('package') オートロードされたモジュールは URL を通してアクセスできます。モジュールパスを動作させるには module_paths をセットする必要があります。
.classes array
array()
どのクラスをオートロードし、初期化するか。 パッケージやモジュールからクラスをオートロードする場合は、必ずそれもオートロードするようにしましょう。
.config array
array()
どの設定ファイルをオートロードするか。次のように設定ファイルを group にロードします: array('config') または array('filename' => 'group')。ファイルをセットでロードしたくない場合は、グループ名を null にします: array('filename' => null)
.language array
array()
どの言語ファイルをオートロードするか。次のように設定ファイルを group にロードします: array('lang') または array('filename' => 'group')。ファイルをロードしたくない場合は、グループ名を null にします: array('filename' => null)
 

Config クラスを使うと、設定ファイルや設定とのやりとりができます。 設定ファイルは oil を使って生成することができます。