アプリケーション設定

まずはじめに

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,
),
絶対パスを隠したり、 (レイアウトの目的で) 表示されるパスを短くするための パスから文字列に変換する配列
cache_dir string
APPPATH.'cache/'
キャッシュファイルを保存するディレクトリ。このディレクトリを書き込み可能にする必要があります。
caching bool
false
キャッシュを有効にするかどうか
cache_lifetime int
3600
キャッシュファイルの生存期間を秒単位で指定します。
ob_callback callback
null
ob_start() に与えられるコールバックで、gzip 圧縮による出力を可能にする ob_gzhandler に設定される。
errors array エラーが検出された際の挙動を決める設定キーを格納する配列:
.continue_on array
array(
)
どの PHP エラーが発生したときに実行を続けるか。 エラー処理 を参照してください。
.throttle int
10
表示を止める前に出力するエラーの数 (out-of-memory エラーを避けます)
.notices bool
true
notice を表示するかどうか
 
language string
'en'
アプリケーションのデフォルトの言語。 Lang クラス で使用します。
language_fallback string
'en'
この言語は、リクエストされた言語ファイルがアクティブな言語として存在しない場合に使用されます。 これはメインのアプリケーション言語でなければなりません。
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
サーバのタイムゾーン。 null に設定すると、 php.ini に定義されたタイムゾーンが使用されます。

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

log_threshold int
Fuel::L_WARNING
ログの閾値。どのレベルのメッセージからログを取るか、またはログを取りたいレベルの配列。 取り得る値について
log_file string
null
ログ出力するファイル。指定されていない場合、ファイル名が生成されます。
log_path string
APPPATH.'logs/'
ログを保存するディレクトリ。このディレクトリを書き込み可能にする必要があります。
log_date_format string
'Y-m-d H:i:s'
ログで使用される date/time の書式。
cli_backtrace bool
false
true の場合、 CLI モードで PHP fatal エラーが発生するとバックトレースが出力されます (html エラーページと同様)。
security アプリケーションのセキュリティを操作する設定キーを格納する配列:
.csrf_autoload bool
false
csrf トークンを自動的にチェックするかどうか。 csrf についてはこちらを読んでください
.csrf_autoload_methods array
array(
	'post', 'put', 'delete'
)
csrf トークンの自動チェックが行われる HTTP メソッドのリスト。
.csrf_bad_request_on_fail bool
false
true の場合、 HttpBadRequestException がスローされます。 false の場合、 SecurityException がスローされます。 下位互換性の理由からデフォルトは false です。
.csrf_auto_token bool
false
true の場合、 Form::open() を使用して生成された各フォームに hidden の csrf トークンフィールドが自動で追加されます。
.csrf_token_key string
'fuel_csrf_token'
csrf トークンをチェックするときに、取得する $_POST キー。
.csrf_expiration int
0
csrf クッキーの有効期限を指定。 0 より大きな値はすべて クッキーの有効期限までの秒数です。
.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')
URI をフィルタリングするために使用する php 呼び出し可能なもの
.input_filter array
array()
入力配列 ($_GET 、 $_POST 、 $_COOKIE) をフィルタリングするために使用する php 呼び出し可能なもの。 xss_clean に設定できますが、入力のサイズによって パフォーマンスが低下する可能性があります。
.output_filter array
array()
ビューにセットされた変数をフィルタリングするために使用する php 呼び出し可能なもの。 xss_clean に設定できますが、変数のサイズによって パフォーマンスが低下する可能性があります。
.htmlentities_flags integer
ENT_QUOTES
自動的にビューのデータをエンコード (htmlentities) するかどうか
.htmlentities_double_encode bool
false
HTML エンティティを同様にエンコードするかどうか
.auto_filter_output bool
true
自動的にデータをエンコード (htmlentities) するかどうか
.filter_closures bool
true
true の場合、ビューに渡されたクロージャが実行され、その戻り値がフィルタリングされてビューに渡されます。 false の場合、クロージャ自体がビューに渡されます。
.whitelisted_classes array
array(
	'stdClass',
	'Fuel\\Core\\View',
	'Fuel\\Core\\Presenter',
	'Closure'
)
出力エンコーディングがオンになった場合、この配列の中のクラスのインスタンスでない限り、 渡された全てのオブジェクトが文字列に変換されるか、例外をスローします。
.form-double-urlencoded bool
false
true に設定するとクライアントは www-form-urlencoded content-type を使用して、 HTTP PUT 、 DELETE または PATCH メソッドでデータを送信します。 コンテンツは送信前にローカルで URL エンコードされます。
.clean_paths mixed
array(
),
絶対パスを隠したり、表示されるパスを短くするための パスから文字列への変換する配列。 セキュリティ上の理由から、 APPPATH 、COREPATH 、 PKGPATH そして DOCROOT は常に変換されることに注意してください。
 
cookie グローバルなクッキーの設定を定義する設定キーを格納する配列:
.expiration int
0
クッキーが期限切れになるまでの秒数
.path string
'/'
クッキーが有効なパスを制限する
.domain string
null
クッキーが有効なドメインを制限する
.secure bool
false
セキュアな接続でのみクッキーを送信する
.http_only bool
false
Javascript 接続を無効にし、 HTTP だけでクッキーを送信する
 
validation バリデーションを制御するための設定キーを格納する配列:
.global_input_fallback bool
true
バリデーションに渡された入力配列に値が見つからない場合に、 グローバル入出力データにフォールバックするかどうかを設定
 
controller_prefix string
'Controller_'
URI をコントローラクラス名にマッピングする際にコントローラを見つけるために使われるクラス接頭辞。 コントローラに名前空間を付けたり、 app/classes/controller と異なったフォルダに変更したい場合は、 変更が必要です。
routing ルーティングを制御するための設定キーを格納する配列:
.case_sensitive bool
true
URI ルーティングで大文字と小文字を区別するか。 true の場合、"/THIS" と "/this" は異なるルーティングになります。
.strip_extension mixed
true
false の場合、何も取り除かれません。 true の場合、すべての拡張子が取り除かれます。 配列の場合、削除する必要のある拡張子 (先頭のドットを含む!) のリストを含める必要があります。
 
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 初期化時にフレームワークが読み込まなければならないアイテムを格納する配列:
.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 を使って生成することができます。