アプリケーション設定
まずはじめに
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 |  | アプリケーションのベース URL。相対指定することもできます。末尾は必ずスラッシュにする必要があります。('/foo/', 'http://example.com/') | |
| url_suffix | string |  | Fuel によって生成される URL に追加するサフィックス。 サフィックスが拡張子の場合、ドットを含める必要があります。 ('.html') | |
| index_file | string |  | メインブートストラップファイル名です。 mod_rewirte を使用する場合は、これを false にするか削除します。 | |
| profiling | bool |  | プロファイラを有効にするかどうか | |
| profiling_paths | mixed |  | 絶対パスを隠したり、 (レイアウトの目的で) 表示されるパスを短くするための パスから文字列に変換する配列 | |
| cache_dir | string |  | キャッシュファイルを保存するディレクトリ。このディレクトリを書き込み可能にする必要があります。 | |
| caching | bool |  | キャッシュを有効にするかどうか | |
| cache_lifetime | int |  | キャッシュファイルの生存期間を秒単位で指定します。 | |
| ob_callback | callback |  | ob_start() に与えられるコールバックで、gzip 圧縮による出力を可能にする ob_gzhandler に設定される。 | |
| errors | array | エラーが検出された際の挙動を決める設定キーを格納する配列: | ||
| .continue_on | array |  | どの PHP エラーが発生したときに実行を続けるか。 エラー処理 を参照してください。 | |
| .throttle | int |  | 表示を止める前に出力するエラーの数 (out-of-memory エラーを避けます) | |
| .notices | bool |  | notice を表示するかどうか | |
| language | string |  | アプリケーションのデフォルトの言語。 Lang クラス で使用します。 | |
| language_fallback | string |  | この言語は、リクエストされた言語ファイルがアクティブな言語として存在しない場合に使用されます。 これはメインのアプリケーション言語でなければなりません。 | |
| locale | string |  | PHP のインストールで必要な setlocale() を使用する場合、セットしている設定を禁止するために
							false をセットします。 この構文設定は OS 毎に異なります。例えば、Ubuntu は .utf8 (エンコーディング) サフィックスが必要です。 | |
| encoding | string |  | アプリケーションのデフォルトの文字エンコード | |
| server_gmt_offset | int |  | time() を使用する際に、サーバの gmt タイムスタンプのオフセットからのオフセット秒数 これは、不適切なサーバ設定を訂正するためのみの設定です: time() は絶えず 1970年1月1日 00:00:00 GMT からの秒数を返すべきです。 | |
| default_timezone | string |  | サーバのタイムゾーン。 null に設定すると、 php.ini に定義されたタイムゾーンが使用されます。 | |
| この値を設定する場合、タイムゾーンの設定があなたのWebサーバに設定されているタイムゾーンに一致することを必ずしっかりと確認して下さい。 タイムゾーンの計算はグリニッジ標準時に変換することで動作しているため、タイムゾーンがずれているととんでもなくおかしなことになります。 時間の表示も正しく表示されなかったり、クッキーやセッションが期限切れであると誤って計算されてしまうでしょう。 | ||||
| log_threshold | int |  | ログの閾値。どのレベルのメッセージからログを取るか、またはログを取りたいレベルの配列。 取り得る値について | |
| log_file | string |  | ログ出力するファイル。指定されていない場合、ファイル名が生成されます。 | |
| log_path | string |  | ログを保存するディレクトリ。このディレクトリを書き込み可能にする必要があります。 | |
| log_date_format | string |  | ログで使用される date/time の書式。 | |
| cli_backtrace | bool |  | true の場合、 CLI モードで PHP fatal エラーが発生するとバックトレースが出力されます (html エラーページと同様)。 | |
| security | アプリケーションのセキュリティを操作する設定キーを格納する配列: | |||
| .csrf_autoload | bool |  | csrf トークンを自動的にチェックするかどうか。 csrf についてはこちらを読んでください 。 | |
| .csrf_autoload_methods | array |  | csrf トークンの自動チェックが行われる HTTP メソッドのリスト。 | |
| .csrf_bad_request_on_fail | bool |  | true の場合、 HttpBadRequestException がスローされます。 false の場合、 SecurityException がスローされます。 下位互換性の理由からデフォルトは false です。 | |
| .csrf_auto_token | bool |  | true の場合、 Form::open() を使用して生成された各フォームに hidden の csrf トークンフィールドが自動で追加されます。 | |
| .csrf_token_key | string |  | csrf トークンをチェックするときに、取得する $_POST キー。 | |
| .csrf_expiration | int |  | csrf クッキーの有効期限を指定。 0 より大きな値はすべて クッキーの有効期限までの秒数です。 | |
| .token_salt | string |  | 生成されるトークンを予測しにくくするためのソルト | |
| .allow_x_headers | bool |  | "X" headers が存在するときに Input クラスから使用可能にするかどうか。 HTTP_X_FORWARDED_FOR や HTTP_X_FORWARDED_PROTO など。 | |
| .uri_filter | array |  | URI をフィルタリングするために使用する php 呼び出し可能なもの | |
| .input_filter | array |  | 入力配列 ($_GET 、 $_POST 、 $_COOKIE) をフィルタリングするために使用する php 呼び出し可能なもの。 xss_clean に設定できますが、入力のサイズによって パフォーマンスが低下する可能性があります。 | |
| .output_filter | array |  | ビューにセットされた変数をフィルタリングするために使用する php 呼び出し可能なもの。 xss_clean に設定できますが、変数のサイズによって パフォーマンスが低下する可能性があります。 | |
| .htmlentities_flags | integer |  | 自動的にビューのデータをエンコード (htmlentities) するかどうか | |
| .htmlentities_double_encode | bool |  | HTML エンティティを同様にエンコードするかどうか | |
| .auto_filter_output | bool |  | 自動的にデータをエンコード (htmlentities) するかどうか | |
| .filter_closures | bool |  | true の場合、ビューに渡されたクロージャが実行され、その戻り値がフィルタリングされてビューに渡されます。 false の場合、クロージャ自体がビューに渡されます。 | |
| .whitelisted_classes | array |  | 出力エンコーディングがオンになった場合、この配列の中のクラスのインスタンスでない限り、 渡された全てのオブジェクトが文字列に変換されるか、例外をスローします。 | |
| .form-double-urlencoded | bool |  | true に設定するとクライアントは www-form-urlencoded content-type を使用して、 HTTP PUT 、 DELETE または PATCH メソッドでデータを送信します。 コンテンツは送信前にローカルで URL エンコードされます。 | |
| .clean_paths | mixed |  | 絶対パスを隠したり、表示されるパスを短くするための パスから文字列への変換する配列。 セキュリティ上の理由から、 APPPATH 、COREPATH 、 PKGPATH そして DOCROOT は常に変換されることに注意してください。 | |
| cookie | グローバルなクッキーの設定を定義する設定キーを格納する配列: | |||
| .expiration | int |  | クッキーが期限切れになるまでの秒数 | |
| .path | string |  | クッキーが有効なパスを制限する | |
| .domain | string |  | クッキーが有効なドメインを制限する | |
| .secure | bool |  | セキュアな接続でのみクッキーを送信する | |
| .http_only | bool |  | Javascript 接続を無効にし、 HTTP だけでクッキーを送信する | |
| validation | バリデーションを制御するための設定キーを格納する配列: | |||
| .global_input_fallback | bool |  | バリデーションに渡された入力配列に値が見つからない場合に、 グローバル入出力データにフォールバックするかどうかを設定 | |
| controller_prefix | string |  | URI をコントローラクラス名にマッピングする際にコントローラを見つけるために使われるクラス接頭辞。 コントローラに名前空間を付けたり、 app/classes/controller と異なったフォルダに変更したい場合は、 変更が必要です。 | |
| routing | ルーティングを制御するための設定キーを格納する配列: | |||
| .case_sensitive | bool |  | URI ルーティングで大文字と小文字を区別するか。 true の場合、"/THIS" と "/this" は異なるルーティングになります。 | |
| .strip_extension | mixed |  | false の場合、何も取り除かれません。 true の場合、すべての拡張子が取り除かれます。 配列の場合、削除する必要のある拡張子 (先頭のドットを含む!) のリストを含める必要があります。 | |
| response | Array, containing the configuration keys to control response behaviour : | |||
| .redirect_with_wildcards | bool |  | 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 |  | The database that stores your configuration data table, if you have opted to use the database as you configuration data backend. | .table_name | string |  | The table that stores your configuration data, if you have opted to use the database as you configuration data backend. | 
| .memcached | array |  | 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 |  | The database that stores your translation data table, if you have opted to use the database as you translation data backend. | .table_name | string |  | The table that stores your translation data, if you have opted to use the database as you translation data backend. | 
| module_paths | array |  | モジュールのディレクトリへのパス。場所を指定せずにモジュールを追加するときに使われます。 | |
| package_paths | array |  | Paths to package directories. Used when adding a package without specifying the location. | |
| always_load | 初期化時にフレームワークが読み込まなければならないアイテムを格納する配列: | |||
| .packages | array |  | どのパッケージをオートロードするか。 array('package') あるいは array('package' => PKGPATH.'path/to/package') のように指定します。これが動作するためには、パッケージのパスが package_paths で設定されていなければなりません。 | |
| .modules | array |  | どのモジュールをオートロードするか。次のように指定します: array('package') オートロードされたモジュールは URL を通してアクセスできます。モジュールパスを動作させるには module_paths をセットする必要があります。 | |
| .classes | array |  | どのクラスをオートロードし、初期化するか。 パッケージやモジュールからクラスをオートロードする場合は、必ずそれもオートロードするようにしましょう。 | |
| .config | array |  | どの設定ファイルをオートロードするか。次のように設定ファイルを group にロードします: array('config') または array('filename' => 'group')。ファイルをセットでロードしたくない場合は、グループ名を null にします: array('filename' => null)。 | |
| .language | array |  | どの言語ファイルをオートロードするか。次のように設定ファイルを group にロードします: array('lang') または array('filename' => 'group')。ファイルをロードしたくない場合は、グループ名を null にします: array('filename' => null)。 | |
Config クラスを使うと、設定ファイルや設定とのやりとりができます。 設定ファイルは oil を使って生成することができます。
