そのほかの設定ファイル
この章ではそのほかのsymfonyの設定ファイルを説明します。 これらを変更する必要性はほとんどありません。
autoload.yml
autoload.yml
設定はsymfonyによってオートロードされる必要のあるディレクトリを決定します。
それぞれのディレクトリはPHPクラスとインターフェイスを見つけるためにスキャンされます。
最初の章で説明したように、autoload.yml
ファイルはコンフィギュレーションカスケードのメカニズムが有効で、定数を格納することができます。
note
autoload.yml
設定ファイルはPHPファイルとしてキャッシュされます;
たいていのプロジェクトではデフォルトコンフィギュレーションで十分です:
autoload: # project project: name: project path: %SF_LIB_DIR% recursive: on exclude: [model, symfony] project_model: name: project model path: %SF_LIB_DIR%/model recursive: on # application application: name: application path: %SF_APP_LIB_DIR% recursive: on modules: name: module path: %SF_APP_DIR%/modules/*/lib prefix: 1 recursive: on
それぞれの設定は名前を持ち、その名前を持つキーの下でセットしなければなりません。 これによってオーバーライドされるデフォルトの設定が可能になります。
tip
ご覧のとおり、デフォルトではlib/vendor/symfony/
ディレクトリは除外されます。
symfonyはコアクラスには異なるオートロードのメカニズムを利用するからです。
オートロードのふるまいをカスタマイズするためにいくつかのキーを使うことができます:
name
: 説明path
: オートロードするパスrecursive
: サブディレクトリでPHPクラスを探すかexclude
: 検索から除外するディレクトリの名前の配列prefix
: パスで見つかるクラスが指定されたモジュールのみをオートロードする場合true
にセットする(デフォルトではfalse
)files
: PHPクラスのために明示的に解析するファイルの配列ext
: PHPクラスの拡張子(デフォルトは.php
)
たとえば、lib/
ディレクトリの下でプロジェクト内部で大きなライブラリを埋め込み、オートロード機能がすでにサポートされている場合、パフォーマンスを向上させるためにproject
のオートロードコンフィギュレーションを修正することでsymfonyのデフォルトのオートロードシステムからそのライブラリを除外できます:
autoload: project: name: project path: %SF_LIB_DIR% recursive: on exclude: [model, symfony, vendor/large_lib]
config_handlers.yml
config_handlers.yml
設定ファイルはほかのすべてのYAML設定ファイルを解釈するために使われるコンフィギュレーションハンドラークラスを記述します。
settings.yml
設定ファイルをロードするために使われるデフォルトコンフィギュレーションは次のとおりです:
config/settings.yml: class: sfDefineEnvironmentConfigHandler param: prefix: sf_
それぞれの設定ファイルはクラス(class
エントリー)によって定義しparam
セクションの下でパラメーターを定義することでさらにカスタマイズできます。
デフォルトのconfig_handlers.yml
ファイルは次のようにパーサークラスを定義します:
設定ファイル | コンフィギュレーションハンドラークラス |
---|---|
autoload.yml |
sfAutoloadConfigHandler |
databases.yml |
sfDatabaseConfigHandler |
settings.yml |
sfDefineEnvironmentConfigHandler |
app.yml |
sfDefineEnvironmentConfigHandler |
factories.yml |
sfFactoryConfigHandler |
core_compile.yml |
sfCompileConfigHandler |
filters.yml |
sfFilterConfigHandler |
routing.yml |
sfRoutingConfigHandler |
generator.yml |
sfGeneratorConfigHandler |
view.yml |
sfViewConfigHandler |
security.yml |
sfSecurityConfigHandler |
cache.yml |
sfCacheConfigHandler |
module.yml |
sfDefineEnvironmentConfigHandler |
core_compile.yml
core_compile.yml
設定ファイルはsymfonyのロード時間を加速するためにprod
環境で1つの大きなファイルにマージされるPHPファイルを記述します。
デフォルトでは、symfonyのメインのコアクラスはこの設定ファイルで定義されます。
アプリケーションがそれぞれのリクエストごとにロードする必要のあるいくつかのクラスに依存する場合、プロジェクトもしくはアプリケーションのcore_compile.yml
設定ファイルを作成しこれらのクラスを設定ファイルに追加できます。
デフォルトコンフィギュレーションの抜粋は次のとおりです:
- %SF_SYMFONY_LIB_DIR%/autoload/sfAutoload.class.php - %SF_SYMFONY_LIB_DIR%/action/sfComponent.class.php - %SF_SYMFONY_LIB_DIR%/action/sfAction.class.php - %SF_SYMFONY_LIB_DIR%/action/sfActions.class.php
はじめの章で説明したように、core_compile.yml
ファイルはコンフィギュレーションカスケードのメカニズムが有効で、定数を格納することができます。
note
core_compile.yml
設定ファイルはPHPファイルとしてキャッシュされます;
処理はsfCompileConfigHandler
クラスによって自動的に管理されます。
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.