The symfony Reference Book

その他の設定ファイル

You are currently browsing
the website for symfony 1

Visit the Symfony2 website


About

You are currently reading "The symfony Reference Book" which is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.

Master symfony

Be trained by SensioLabs experts (2 to 6 day sessions -- French or English).
trainings.sensiolabs.com

Books on symfony

Learn more about symfony with the official guides.
books.sensiolabs.com

L'audit Qualité par SensioLabs

200 points de contrôle de votre applicatif web.
audit.sensiolabs.com

Chapter Content

autoload.yml

config_handlers.yml

core_compile.yml

module.yml

symfony training
Be trained by symfony experts
May 29: Paris (Web Development with Symfony2 - Français)
May 31: Paris (Mastering Symfony2 - Français)
Jun 06: Paris (Introduction to Symfony2 - Français)
Jun 06: Paris (Introduction to Symfony2 - English)
Jun 06: Paris (Going Further with Symfony2 - English)
and more...

Search


powered by google
You are currently browsing "The symfony Reference Book" in Japanese for the 1.4 version - Switch to version: - Switch to language:
Creative Commons License This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.
The symfony reference guide
Support symfony!
Buy this book
or donate.
Buy The symfony reference guide from amazon.com

この章では、その他の設定ファイルを説明します。これらを変更することはほとんどありません。

autoload.yml

オートロードの対象となるディレクトリは autoload.yml ファイルのなかで指定できます。PHP クラスとインターフェイスを捜索するために、それぞれのディレクトリがスキャンされます。

設定ファイルの原則の章で述べたように、autoload.yml ファイルでは、コンフィギュレーションカスケードのメカニズムがはたらいており、定数を定義することができます。

autoload.yml ファイルのキャッシュは PHP ファイルとして保存されます。

ほとんどのプロジェクトでは、デフォルトのコンフィギュレーションで事足ります。

autoload:
  # プロジェクト
  project:
    name:           project
    path:           %SF_LIB_DIR%
    recursive:      true
    exclude:        [model, symfony]
 
  project_model:
    name:           project model
    path:           %SF_LIB_DIR%/model
    recursive:      true
 
  # アプリケーション
  application:
    name:           application
    path:           %SF_APP_LIB_DIR%
    recursive:      true
 
  modules:
    name:           module
    path:           %SF_APP_DIR%/modules/*/lib
    prefix:         1
    recursive:      true

それぞれのコンフィギュレーションに名前をつけ、その名前と同じキーの下側でコンフィギュレーションの内容を記述しなければなりません。これらの作業をおこなうことで、デフォルトのコンフィギュレーションをオーバーライドできます。

ご覧のとおり、デフォルトでは、lib/vendor/symfony/ ディレクトリは除外されています。コアクラスに対して異なるオートロードメカニズムがはたらいているからです。

オートロードのふるまいをカスタマイズするには、次のキーを使います。

たとえば、オートロード機能をサポートしている大きなライブラリをプロジェクトの lib/ ディレクトリに組み込む場合、パフォーマンスを向上させるために、project のオートロードコンフィギュレーションを修正して、このライブラリをオートロードの対象から外すことができます。

autoload:
  project:
    name:           project
    path:           %SF_LIB_DIR%
    recursive:      true
    exclude:        [model, symfony, vendor/large_lib]

config_handlers.yml

ほかのすべての YAML ファイルのパースに使われるコンフィギュレーションハンドラクラスは config_handlers.yml ファイルに登録します。settings.yml ファイルのロードに使われるデフォルトのコンフィギュレーションは次のようになります。

config/settings.yml:
  class:    sfDefineEnvironmentConfigHandler
  param:
    prefix: sf_

それぞれの設定ファイルはクラス (class エントリ) によって定義され、param セクションのなかでパラメータを定義することで、細かくカスタマイズできます。

自前のコンフィギュレーションハンドラを追加するとき、ハンドラのソースファイルに設けられている classfile エントリの下側でクラスの名前とフルパスをそれぞれ指定しなけばなりません。sfApplicationConfiguration クラスのなかでメカニズムを有効にする前にコンフィギュレーションを初期化する必要があるからです。

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

symfony のロード時間を短縮するために、prod 環境において1つの大きなファイルにマージされる PHP ファイルの名前は core_compile.yml ファイルに登録できます。デフォルトでは、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 ファイルでは、コンフィギュレーションカスケードのメカニズムがはたらいており、定数を定義することができます。

core_compile.yml ファイルのキャッシュは PHP ファイルとして保存されます。処理は sfCompileConfigHandler クラスにゆだねられます。

module.yml

モジュールのコンフィギュレーションを変更する場所は module.yml ファイルです。この設定ファイルを変更することはほとんどなく、下記の定義済みのエントリが用意されています。

module.yml ファイルはモジュールの config/ サブディレクトリに配置されています。次のコードは module.yml ファイルの典型的な内容で、すべての設定のデフォルトが用意されています。

all:
  enabled:            true
  view_class:         sfPHP
  partial_view_class: sf

enabled パラメータに false をセットすれば、モジュールのアクションはすべて無効になります。これらのアクションへのリクエストは (settings.yml ファイルで定義されている) module_disabled_module/module_disabled_action アクションにリダイレクトされます。

view_class パラメータは sfView 基底クラスを継承するビュークラスを定義します (サフィックスの View はつきません)。このクラスはモジュールのすべてのアクションによって使われます。

partial_view_class パラメータは sfPartialView クラスを継承するビュークラスを定義します (サフィックスの PartialView はつきません)。このクラスはモジュールのパーシャルによって使われます。

イベント »
« view.yml 設定ファイル

Questions & Feedback

If you find a typo or an error, please register and open a ticket.

If you need support or have a technical question, please post to the official user mailing-list.