アプリケーション設定

まずはじめに

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 にするか削除します。
controller_prefix string
'Controller_'
URI をコントローラのクラス名にマッピングする際にコントローラを見つけるのに仕様されるクラスのプレフィックス。 コントローラを名前空間に置きたい、または app/classes/controller とは別の場所に置きたい場合に、 この値を変更する必要があります。
profiling bool
false
プロファイラを有効にするかどうか
cache_dir string
APPPATH.'cache/'
キャッシュファイルを保存するディレクトリ。このディレクトリを書き込み可能にする必要があります。
caching bool
false
キャッシュを有効にするかどうか
cache_lifetime int
3600
キャッシュファイルの生存期間を秒単位で指定します。
ob_callback callback
null
ob_start() に与えられるコールバックで、gzip 圧縮による出力を可能にする ob_gzhandler に設定される。
errors array エラーが検出された際の挙動を決める設定キーを格納する配列:
errors.continue_on array
array(
)
どの PHP エラーが発生したときに実行を続けるか。 エラー処理 を参照してください。
errors.throttle int
10
表示を止める前に出力するエラーの数 (out-of-memory エラーを避けます)
errors.notices bool
true
notice を表示するかどうか
language string
'en'
アプリケーションのデフォルトの言語。 Lang クラス で使用します。
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
'UTC'
サーバのタイムゾーン。

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

log_threshold int
Fuel::L_WARNING
ログの閾値。どのレベルのメッセージからログを取るか、またはログを取りたいレベルの配列。 取り得る値について
log_path string
APPPATH.'logs/'
ログを保存するディレクトリ。このディレクトリを書き込み可能にする必要があります。
log_date_format string
'Y-m-d H:i:s'
ログで使用される date/time の書式。
 
security array アプリケーションのセキュリティを操作する設定キーを格納する配列:
security.csrf_autoload bool
false
csrf トークンを自動的にチェックするかどうか。 csrf についてはこちらを読んでください
security.csrf_token_key string
'fuel_csrf_token'
csrf トークンをチェックするときに、取得する $_POST キー。
security.csrf_expiration int
0
csrf クッキーの有効期限を指定。 0 より大きな値はすべて クッキーの有効期限までの秒数です。
security.token_salt string
'put your salt value here to make the token more secure'
生成されるトークンを予測しにくくするためのソルト
security.allow_x_headers bool
false
"X" headers が存在するときに Input クラスから使用可能にするかどうか。 HTTP_X_FORWARDED_FOR や HTTP_X_FORWARDED_PROTO など。
security.uri_filter array
array('htmlentities')
URI をフィルタする PHP 関数
security.input_filter array
array()
入力の配列 ($_GET, $_POST, $_COOKIE) をフィルタする PHP 関数。xss_clean をセットできます。 これは入力のサイズに応じてパフォーマンスが犠牲になります。
security.output_filter array
array()
ビューにセットする変数をフィルタする PHP 関数。 xss_clean をセットすることもできますが、 変数のサイズによりパフォーマンスに打撃を与える可能性があります。
security.auto_filter_output bool
true
自動的にデータをエンコード (htmlentities) するかどうか
security.whitelisted_classes array()
array(
'stdClass',
'Fuel\\Core\\View',
'Fuel\\Core\\Presenter',
'Closure'
)
出力エンコーディングがオンになった場合、この配列の中のクラスのインスタンスでない限り、 渡された全てのオブジェクトが文字列に変換されるか、例外をスローします。
 
cookie array グローバルなクッキーの設定を定義する設定キーを格納する配列:
cookie.expiration int
0
クッキーが期限切れになるまでの秒数
cookie.path string
'/'
クッキーが有効なパスを制限する
cookie.domain string
null
クッキーが有効なドメインを制限する
cookie.secure bool
false
セキュアな接続でのみクッキーを送信する
cookie.http_only bool
false
Javascript 接続を無効にし、 HTTP だけでクッキーを送信する
module_paths array
array()
モジュールのディレクトリへのパス。場所を指定せずにモジュールを追加するときに使われます。
 
always_load array 初期化時にフレームワークが読み込まなければならないアイテムを格納する配列:
always_load.packages array
array()
どのパッケージをオートロードするか。 array('package') あるいは array('package' => PKGPATH.'path/to/package') のように指定します。これが動作するためには、パッケージのパスが package_paths で設定されていなければなりません。
always_load.modules array
array()
どのモジュールをオートロードするか。次のように指定します: array('package') オートロードされたモジュールは URL を通してアクセスできます。モジュールパスを動作させるには module_paths をセットする必要があります。
always_load.classes array
array()
どのクラスをオートロードし、初期化するか。 パッケージやモジュールからクラスをオートロードする場合は、必ずそれもオートロードするようにしましょう。
always_load.config array
array()
どの設定ファイルをオートロードするか。次のように設定ファイルを group にロードします: array('config') または array('filename' => 'group')。ファイルをセットでロードしたくない場合は、グループ名を null にします: array('filename' => null)
always_load.language array
array()
どの言語ファイルをオートロードするか。次のように設定ファイルを group にロードします: array('lang') または array('filename' => 'group')。ファイルをロードしたくない場合は、グループ名を null にします: array('filename' => null)

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