settings.yml設定ファイル
symfonyのほとんどはYAMLもしくはプレーンなPHPで書かれた設定ファイルを通して設定できます。
このセクションでは、アプリケーション用のメインの設定ファイルである、settings.yml
を説明します。
アプリケーション用のメインのsettings.yml
設定ファイルはapps/APP_NAME/config/
ディレクトリで見つかります。
はじめの章で説明したように、settings.yml
ファイルは環境を認識し、コンフィギュレーションカスケードのメカニズムが有効になります。
それぞれの環境は2つのサブセクション: .actions
と.settings
を持ちます。
共通ページ用にレンダリングされるデフォルトのアクション以外、すべての設定ディレクティブは.settings
サブセクションの下で機能します。
note
settings.yml
設定ファイルはPHPファイルとしてキャッシュされます;
プロセスはsfDefineEnvironmentConfigHandler
クラスによって自動的に管理されます。
設定
.actions
.settings
cache
charset
check_lock
check_symfony_version
compressed
csrf_secret
default_culture
default_timezone
enabled_modules
error_reporting
escaping_strategy
escaping_method
etag
i18n
lazy_cache_key
logging_enabled
no_script_name
max_forwards
standard_helpers
strip_comments
use_database
web_debug
web_debug_web_dir
.actions
サブセクション
デフォルトコンフィギュレーション:
default: .actions: error_404_module: default error_404_action: error404 login_module: default login_action: login secure_module: default secure_action: secure module_disabled_module: default module_disabled_action: disabled
.actions
サブセクションは共通のページがレンダリングされるときに実行するアクションを定義します。
それぞれの定義は2つのコンポーネントを格納します: 1つはモジュール用(サフィックスは_module
)、もう1つはアクション用です(サフィックスは_action
)。
error_404
error_404
アクションは404ページがレンダリングされるときに実行されます。
login
login
アクションは認証されていないユーザーがセキュアなページにアクセスしようとするときに実行されます。
secure
secure
アクションはユーザーが必須のクレデンシャルを持たないときに実行されます。
module_disabled
module_disabled
アクションはユーザーが無効なモジュールをリクエストするときに実行されます。
.settings
サブセクション
.settings
サブセクションはフレームワークの設定が行われるところです。
下記のパラグラフはすべての可能な設定を説明し、重要度順におおまかに並べています。
.settings
セクションで定義されるすべての設定はsfConfig
オブジェクトを使いsf_
のプレフィックスをつけることでコード内の任意の場所で利用可能です。
たとえば、charset
設定の値を得るには、次のコードを使います:
sfConfig::get('sf_charset');
escaping_strategy
デフォルト: off
escaping_strategy
設定は出力エスケーパーサブフレームワークが有効であるかどうかを決定するブール値の設定です。
有効なとき、テンプレートのなかで利用可能なすべての変数は escaping_method
設定で定義されるヘルパー関数を呼び出すことで自動的にエスケープされます(下記を参照)。
escaping_method
設定はsymfonyによって使われるデフォルトのヘルパーであることに注意してください。
しかしこれはたとえばJavaScriptスクリプトのタグで変数を出力するときなど、ケースバイケースでオーバーライドできます。
出力エスケーパーサブフレームワークはエスケープ用にcharset
設定を使います。
デフォルトの値をon
に変更することを強くおすすめします。
tip
generate:app
タスクでアプリケーションを作成するときに--escaping-strategy
オプションを指定することでこの設定は自動的にセットできます。
escaping_method
デフォルト: ESC_SPECIALCHARS
escaping_method
設定はテンプレートでエスケープするために使うデフォルト関数を定義します(上記のescaping_strategy
設定を参照)。
組み込み関数の1つ: ESC_SPECIALCHARS
、ESC_RAW
、ESC_ENTITIES
、ESC_JS
、ESC_JS_NO_ENTITIES
とESC_SPECIALCHARS
を選ぶもしくは独自関数を作ることができます。
たいていの場合、デフォルトの値で十分です。
英語もしくはヨーロッパの言語のみ扱う場合のみESC_ENTITIES
ヘルパーも使うことができます。
csrf_secret
デフォルト: false
csrf_secret
設定はアプリケーション用の一意的な秘密の文字列(unique secret)です。
false
にセットされていない場合、これはフォームフレームワークで定義されるすべてのフォーム用のCSRFからの保護を有効にします。
リンクをフォームに変換することが必要なとき(たとえばHTTP DELETE
メソッドをシミュレートする)この設定はlink_to()
ヘルパーにも使われます。
デフォルトの値を一意的な秘密の文字列に変更することを強くおすすめします。
tip
--csrf-secret
オプションを指定してgenerate:app
でアプリケーションを作る際にこの設定は自動的にセットされます
charset
デフォルト: utf-8
charset
設定はフレームワークにおいてレスポンスのContent-Type
ヘッダーから出力エスケーピング機能までのどこでも使われる文字集合です。
たいていの場合、デフォルトで十分です。
warning
この設定はフレームワークの多くの場所で使われるので、この値は複数の場所で保存されます。 これを変更した後では、開発環境であってもコンフィギュレーションキャッシュをクリアしなければなりません。
enabled_modules
デフォルト: [default]
enabled_modules
設定はこのアプリケーションで有効なモジュール名の配列です。
デフォルトでは、プラグインもしくはsymfonyコアで定義されるモジュールは有効ではなく、アクセスできるようにこの設定のリストに含めなければなりません。
モジュールの追加方法はシンプルで名前をリストに追加するだけです(モジュールの順序は問題にはなりません):
enabled_modules: [default, sfGuardAuth]
フレームワークで定義されるdefault
モジュールはサブセクションのsettings.yml
の.actions
でセットされるすべてのデフォルトのアクションを格納します。
これらすべてをカスタマイズし、この設定からdefault
モジュールを削除することをおすすめします。
default_timezone
デフォルト: なし
default_timezone
設定はPHPで使われるデフォルトのタイムゾーンを定義します。
PHPで認識される任意のタイムゾーンになります。
note
タイムゾーンが定義されていない場合、php.ini
ファイルで定義することをおすすめします。
そうでなければ、symfonyはPHPのdate_default_timezone_get()
関数を呼び出すことでベストのタイムゾーンを推測しようとします。
cache
デフォルト: off
cache
設定はテンプレートキャッシュを有効もしくは無効にする。
tip
キャッシュシステムの一般設定はfactories.yml
設定ファイルのview_cache_manager
とview_cache
セクションで行われます。
きめ細かい設定はcache.yml
設定ファイルで行います。
etag
デフォルト: dev
とtest
環境を除いて、デフォルトではon
etag
設定はHTTPのETag
ヘッダーの自動生成を有効もしくは無効にします。
symfonyによって生成されるETagはレスポンスのコンテンツの単純なmd5です。
i18n
デフォルト: off
i18n
設定は国際化サブフレームワークを有効もしくは無効にするブール値です。
アプリケーションを国際化する場合、on
にセットします。
tip
国際化システムの一般設定はfactories.yml
設定ファイルのi18n
セクションで行われます。
default_culture
デフォルト: en
default_culture
設定は国際化サブフレームワークで使われるデフォルトのcultureを定義します。
これは任意の有効なcultureになります。
standard_helpers
デフォルト: [Partial, Cache, Form]
standard_helpers
設定はすべてのテンプレート用にロードされるヘルパーグループの配列です
(サフィックスのHelper
を持たないgroupヘルパーの名前)。
no_script_name
デフォルト: on
は最初に作成されるアプリケーションのprod
環境用に、off
はその他すべて
no_script_name
設定はフロントコントローラースクリプトの名前が生成URLに追加されるかどうかを決定します。
デフォルトでは、最初に作成されるアプリケーションのprod
環境のためにgenerate:app
タスクによってこれはon
にセットされます。
すべてのフロントコントローラーが同じディレクトリ(web/
)にある場合、あきらかに、1つのアプリケーションと環境のみがこの設定をon
にセットできます。
no_script_name
をon
にセットしたアプリケーションが複数ほしいのであれば、対応するフロントコントローラーをWeb公開ディレクトリのサブディレクトリのなかに移動させます。
lazy_cache_key
デフォルト: 新しいプロジェクトではon
、アップグレードしたプロジェクトではoff
これが有効なとき、lazy_cache_key
設定はアクションもしくはパーシャルがキャッシュ可能になるまでキャッシュキーの作成を遅延させます。
テンプレートパーシャルの使い方によって、これは大きなパフォーマンスの改善になります。
以前の1.2リリースとの後方互換性を壊さずにパフォーマンスを改善するために、この設定はsymfony 1.2.7で導入されました。 symfony 1.3では最適化は常に有効なのでこの設定は削除されます。
caution
この設定はsymfony 1.2.7とそれ以降でのみ利用可能です。
logging_enabled
デフォルト: prod
以外のすべての環境に対してon
logging_enabled
設定はロギングサブフレームワークを有効にします。
これをfalse
に設定することでロギングメカニズムを回避し少しパフォーマンスが向上します。
tip
ロギングのきめ細かい設定はfactories.yml
設定ファイルで行います。
web_debug
デフォルト: dev
以外のすべての環境に対してoff
web_debug
設定はWebデバッグツールバーを有効にします。
レスポンスのContent-TypeがHTMLであるときにWebデバッグツールバーがページに注入されます。
error_reporting
デフォルト:
prod
: E_PARSE | E_COMPILE_ERROR | E_ERROR | E_CORE_ERROR | E_USER_ERRORdev
: E_ALL | E_STRICTtest
: (E_ALL | E_STRICT) ^ E_NOTICE- デフォルト: E_PARSE | E_COMPILE_ERROR | E_ERROR | E_CORE_ERROR | E_USER_ERROR
error_reporting
設定は(ブラウザに表示されログに書き込まれる)PHPのエラーレポートのレベルをコントロールします。
tip
ビット演算子の使い方に関する情報はPHPの公式サイトにあります。
デフォルト設定はもっとも利にかなったものであり、変えるべきではありません。
note
prod
環境のフロントコントローラーはdebug
を無効にしておりブラウザのエラー表示は自動的に無効になります。
compressed
デフォルト: off
compressed
設定はPHPネイティブなレスポンス圧縮を有効にします。
on
にセットされている場合、symfonyはob_start()
用のコールバック関数としてob_gzhandler
を使います。
これはoff
の状態にしておいて、代わりにWebサーバーのネイティブな圧縮メカニズムを使うことをおすすめします。
use_database
デフォルト: on
use_database
はアプリケーションがデータベースを使うかどうかを決定します。
check_lock
デフォルト: off
check_lock
設定はcache:clear
とproject:disable
のようなタスクによって実行されるアプリケーションのロックシステムを有効もしくは無効にします。
on
に設定される場合、無効なアプリケーションへのすべてのリクエストはsymfonyコアのlib/exception/data/unavailable.php
ページに自動的にリダイレクトされます。
tip
config/unavailable.php
ファイルをプロジェクトもしくはアプリケーションに追加することで無効なページ用のデフォルトテンプレートをオーバーライドできます。
check_symfony_version
デフォルト: off
check_symfony_version
はリクエストごとにsymfonyの現在のバージョンをチェックするのを有効もしくは無効にします。
有効な場合、symfonyがアップグレードされた際にキャッシュは自動的にクリアされます。
これをon
にしないことが強く推奨されます。
小さなオーバーヘッドが発生するのと新しいバージョンのプロジェクトをデプロイする際にキャッシュをクリアするだけで済むからです。
この設定は複数のプロジェクトが同じsymfonyのコードを共有する場合のみ役に立ちますが、推奨されません。
web_debug_web_dir
デフォルト: /sf/sf_web_debug
web_debug_web_dir
はWebデバッグツールバーのアセットへのWebパスをセットします
(画像、スタイルシートとJavaScriptファイル)。
strip_comments
デフォルト: on
strip_comments
はコアクラスをコンパイルする際にsymfonyがコメントを除去するかを決定します。
アプリケーションのdebug
設定がoff
にセットされている場合のみこの設定が使われます。
運用環境でのみ空白のページを用意する場合、この設定をoff
にセットしてみてください。
max_forwards
デフォルト: 5
max_forwards
設定はsymfonyが例外を投げる前に許容される内部転送の最大回数をセットします。
これは無限ループを避けるためにあります。
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.