The symfony Reference Book

factories.yml設定ファイル

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

ファクトリ

request

path_info_array

path_info_key

formats

relative_url_root

response

send_http_headers

charset

http_protocol

user

timeout

use_flash

default_culture

storage

auto_start

session_name

session_set_cookie_params()パラメーター

session_cache_limiter

データベースストレージ固有のオプション

view_cache_manager

view_cache

i18n

source

debug

untranslated_prefix

untranslated_suffix

cache

routing

variable_prefixes

segment_separators

generate_shortest_url

extra_parameters_as_query_string

cache

suffix

load_configuration

lazy_routes_deserialize

lookup_cache_dedicated_keys

logger

level

loggers

controller

匿名キャッシュファクトリ

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.2 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.
This version of symfony is not maintained anymore.
If some of your projects still use this version, consider upgrading as soon as possible.
The symfony reference guide
Support symfony!
Buy this book
or donate.
Buy The symfony reference guide from amazon.com

ファクトリはリクエストが存続するあいだにフレームワークが必要とするコアオブジェクトです。 これらはfactories.yml設定ファイルで設定されsfContextオブジェクトを通して常にアクセス可能です:

// ユーザーファクトリを取得する
sfContext::getInstance()->getUser();

アプリケーションのメインのfactories.yml設定ファイルはapps/APP_NAME/config/ディレクトリで見つかります。

はじめの章で説明したように、factories.ymlファイルは環境を認識しコンフィギュレーションカスケードのメカニズムが有効になり、定数を格納することができます。

factories.yml設定ファイルは名前つきのファクトリのリストを格納します:

FACTORY_1:
  # definition of factory 1
 
FACTORY_2:
  # definition of factory 2
 
# ...

サポートされるファクトリの名前は次のとおりです: controllerloggeri18nrequestresponseroutingstorageuserview_cacheview_cache_manager

sfContextがファクトリを初期化するとき、ファクトリオブジェクトを設定するために使われるファクトリ(class)とパラメーター(param)のクラス名のfactories.ymlファイルを読み込みます:

FACTORY_NAME:
  class: CLASS_NAME
  param: { ARRAY OF PARAMETERS }

ファクトリをカスタマイズできることはsymfonyのコアオブジェクトのデフォルトクラスの代わりにカスタムクラスを使うことができることを意味します。 これらに送信するパラメーターをカスタマイズすることでこれらのクラスのデフォルトのふるまいを変更することもできます。

ファクトリクラスがオートロードできないとき、fileパスが定義されファクトリが作成される前に自動的にインクルードできます:

FACTORY_NAME:
  class: CLASS_NAME
  file:  ABSOLUTE_PATH_TO_FILE

factories.yml設定ファイルはPHPファイルとしてキャッシュされます; プロセスはsfFactoryConfigHandlerクラスによって自動的に管理されます。

ファクトリ

request

sfContextアクセサー: $context->getRequest()

デフォルトコンフィギュレーション:

request:
  class: sfWebRequest
  param:
    logging:           %SF_LOGGING_ENABLED%
    path_info_array:   SERVER
    path_info_key:     PATH_INFO
    relative_url_root: ~
    formats:
      txt:  text/plain
      js:   [application/javascript, application/x-javascript, text/javascript]
      css:  text/css
      json: [application/json, application/x-json]
      xml:  [text/xml, application/xml, application/x-xml]
      rdf:  application/rdf+xml
      atom: application/atom+xml

path_info_array

path_info_arrayオプションは情報を読み取るために使われるグローバルなPHP配列を定義します。 設定によってはデフォルトのSERVERの値をENVに変更するとよいでしょう。

path_info_key

path_info_keyオプションはPATH_INFOの情報が見つかるキーを定義します。

IIFRもしくはISAPIのようなrewriteモジュールつきのIISを使う場合、この値をHTTP_X_REWRITE_URLに変更するとよいでしょう。

formats

formatsオプションはファイル拡張子とContent-Typeの配列です。 リクエストURIの拡張子に基づいて、レスポンスのContent-Typeを自動管理するためにsymfonyによって使われます。

relative_url_root

relative_url_rootオプションはフロントコントローラー前のURLの部分を定義します。 たいていの場合、これはフレームワークによって自動的に検出されるので変更する必要はありません。

response

sfContextアクセサー: $context->getResponse()

デフォルトコンフィギュレーション:

response:
  class: sfWebResponse
  param:
    logging:           %SF_LOGGING_ENABLED%
    charset:           %SF_CHARSET%
    send_http_headers: true

test環境のデフォルトコンフィギュレーション:

response:
  class: sfWebResponse
  param:
    send_http_headers: false

send_http_headers

send_http_headersオプションはレスポンス内に含まれるコンテンツと一緒にHTTPレスポンスヘッダーを送信するかを指定します。 この設定は出力の後でヘッダーを送信しようとすると警告を発するPHPのheader()関数でヘッダーが送信されるので、テストの際に便利です。

charset

charsetオプションはレスポンスに使う文字集合を定義します。 デフォルトでは、settings.ymlcharset設定が使われます。

http_protocol

http_protocolオプションはレスポンスに使うHTTPプロトコルのバージョンを定義します。 デフォルトでは、利用可能であれば$_SERVER['SERVER_PROTOCOL']の値をチェックします。 デフォルトはHTTP/1.0です。

user

sfContextのアクセサー: $context->getUser()

デフォルトコンフィギュレーション:

user:
  class: myUser
  param:
    timeout:         1800
    logging:         %SF_LOGGING_ENABLED%
    use_flash:       true
    default_culture: %SF_DEFAULT_CULTURE%

デフォルトでは、myUserクラスはsfBasicSecurityUserを継承します。 これはsecurity.yml設定ファイルで設定できます。

timeout

timeoutオプションはユーザー認証のタイムアウトを定義します。 これはセッションのタイムアウトとは関係ありません。 デフォルトの設定は30分間何もしていないユーザーの認証を自動的に解除します。

sfBasicSecurityUser基底クラスを継承するユーザークラスのみがこの設定を使います。 これはmyUserクラスが生成される例が当てはまります。

予期していないふるまいを避けるために、ユーザークラスはセッションガーベッジコレクターの最長有効期間(session.gc_maxlifetime)をタイムアウトよりも長くなるように強制します。

use_flash

use_flashオプションはflashコンポーネントを有効もしくは無効にします。

default_culture

default_cultureオプションはサイトに始めて訪問したユーザーのためにデフォルトのcultureを定義します。 デフォルトでは、settings.ymlからのdefault_cultureが使用されるたいていの場合これで十分です。

factories.ymlもしくはsettings.ymldefault_culture設定を変更する場合、結果を確認するためにブラウザのCookieをクリアする必要があります。

storage

ストレージファクトリはHTTPリクエストのあいだのユーザーデータを一貫させるためにユーザーファクトリによって使われます。

sfContextアクセサー: $context->getStorage()

デフォルトコンフィギュレーション:

storage:
  class: sfSessionStorage
  param:
    session_name: symfony

test環境のデフォルトコンフィギュレーション:

storage:
  class: sfSessionTestStorage
  param:
    session_path: %SF_TEST_CACHE_DIR%/sessions

auto_start

auto_startオプションは(session_start()関数を通して)PHPのセッション自動開始機能を有効もしくは無効にします。

session_name

session_nameオプションはユーザーセッションを保存するためにsymfonyによって使われるCookieの名前を定義します。 デフォルトの名前はsymfonyで、すべてのアプリケーションが同じCookieを共有することを意味します(そして対応する認証と権限付与も)。

session_set_cookie_params()パラメーター

storageファクトリは次のオプションの値でsession_set_cookie_params()関数を呼び出します:

それぞれのオプションの説明はsession_set_cookie_params()関数の説明はPHPの公式サイトに説明に由来しています。

session_cache_limiter

session_cache_limiterオプションがセットされている場合、PHPのsession_cache_limiter()関数が呼び出され引数としてオプションの値が渡されます。

データベースストレージ固有のオプション

sfDatabaseSessionStorageクラスを継承するストレージを使うとき、いくつかの追加オプションが利用可能です:

view_cache_manager

sfContextアクセサー: $context->getViewCacheManager()

デフォルトコンフィギュレーション:

view_cache_manager:
  class: sfViewCacheManager

cache設定がonにセットされている場合にのみこのファクトリは作成されます。

ビューキャッシュマネージャーの設定はparamキーを含みません。 この設定はview_cacheファクトリを通して行われます。 これはビューキャッシュマネージャーによって使われる内部のキャッシュオブジェクトを定義します。

view_cache

sfContextアクセサー: なし(view_cache_managerファクトリによって直接使われる)

デフォルトコンフィギュレーション:

view_cache:
  class: sfFileCache
  param:
    automatic_cleaning_factor: 0
    cache_dir:                 %SF_TEMPLATE_CACHE_DIR%
    lifetime:                  86400
    prefix:                    %SF_APP_DIR%/template

cache設定がonにセットされている場合のみこのファクトリが定義されます。

view_cacheファクトリはsfCacheを継承するキャッシュクラスを定義します(詳細な情報はキャッシュのセクションを参照)。

i18n

sfContextアクセサー: $context->getI18N()

デフォルトコンフィギュレーション:

i18n:
  class: sfI18N
  param:
    source:               XLIFF
    debug:                off
    untranslated_prefix:  "[T]"
    untranslated_suffix:  "[/T]"
    cache:
      class: sfFileCache
      param:
        automatic_cleaning_factor: 0
        cache_dir:                 %SF_I18N_CACHE_DIR%
        lifetime:                  31556926
        prefix:                    %SF_APP_DIR%/i18n

i18n設定がonにセットされている場合のみこのファクトリが定義されます。

source

sourceオプションは翻訳用コンテナーの種類を定義します。

組み込みのコンテナー: XLIFFSQLiteMySQL、とgettext

debug

debugオプションはデバッグモードをセットします。 onにセットされる場合、未翻訳のメッセージはプレフィックスとサフィックスによってデコレートされます(下記を参照)。

untranslated_prefix

untranslated_prefixは未翻訳のメッセージに使われるプレフィックスを定義します。

untranslated_suffix

untranslated_suffixは未翻訳のメッセージに使われるサフィックスを定義します。

cache

cacheオプションは国際化データのキャッシュに使われる匿名キャッシュファクトリを定義します(詳細な情報はキャッシュのセクションを参照)。

routing

sfContextアクセサー: $context->getRouting()

デフォルトコンフィギュレーション:

routing:
  class: sfPatternRouting
  param:
    load_configuration:               true
    suffix:                           ''
    default_module:                   default
    default_action:                   index
    debug:                            %SF_DEBUG%
    logging:                          %SF_LOGGING_ENABLED%
    generate_shortest_url:            true
    extra_parameters_as_query_string: true
    cache:
      class: sfFileCache
      param:
        automatic_cleaning_factor: 0
        cache_dir:                 %SF_CONFIG_CACHE_DIR%/routing
        lifetime:                  31556926
        prefix:                    %SF_APP_DIR%/routing

variable_prefixes

デフォルト: :

variable_prefixesオプションはルートのパターンの変数名を始める文字のリストを定義します。

segment_separators

デフォルト: /.

segment_separatorsオプションはルートセグメントの区切り文字のリストを定義します。 たいていの場合、特定のルート以外、ルーティング全体に対してこのオプションをオーバーライドすることはないでしょう。

generate_shortest_url

デフォルト: 新しいプロジェクトではtrue、アップグレードしたプロジェクトにはfalse

trueにセットされる場合、generate_shortest_urlオプションはルーティングシステムに実現可能な最短のルートを生成するよう伝えます。 symfony 1.0と1.1との後方互換性のあるルートがほしい場合は、falseにセットします。

extra_parameters_as_query_string

デフォルト: 新しいプロジェクトにはtrue、アップグレードしたプロジェクトにはfalse

ルートの生成に使われないパラメーターがあるとき、extra_parameters_as_query_stringはルート生成に利用していないパラメーターをクエリーストリングに変換することが可能です。 symfony 1.0もしくは1.1のふるまいを代替するにはfalseにセットします。 このバージョンでは、ルート生成に利用していないパラメーターはルーティングシステムによって無視されるだけでした。

cache

cacheオプションはルーティング設定とデータのキャッシュに使われる匿名キャッシュファクトリを定義します(詳細な情報はキャッシュセクションを参照)。

suffix

デフォルト: なし

すべてのルートに使われるデフォルトのサフィックスです。 このオプションは非推奨でもはや役に立ちません。

load_configuration

デフォルト: true

load_configurationオプションはrouting.ymlファイルが自動的にロードされ解析される必要があるかどうかを定義します。 symfonyプロジェクトではない外部のルーティングシステムを使いたい場合falseにセットします。

lazy_routes_deserialize

デフォルト: false

trueにセットする場合、lazy_routes_deserialize設定はルーティングキャッシュの遅延デシリアライズを有効にします。 たくさんのルートを抱えており、マッチするルートが最初のものである場合この設定はアプリケーションのパフォーマンスを改善できます。 特定の状況ではパフォーマンスに悪い影響を与える可能性があるので運用サーバーにデプロイする前に設定をテストすることを強くおすすめします。

symfony 1.2.7とそれ以降でのみこの設定は利用できます。

lookup_cache_dedicated_keys

デフォルト: false

lookup_cache_dedicated_keys設定はルーティングキャッシュが構成される方法を決定します。 falseにセットされている場合、キャッシュは1つの大きな値として保存されます; trueにセットされている場合それぞれのルートは独自のキャッシュストアを持ちます。 この設定はパフォーマンス最適化設定です。

経験則として、ファイルベースのキャッシュクラス(たとえばsfFileCache)を使う際にはこの設定をfalseに、メモリベースのキャッシュクラス(たとえばsfAPCCache)を使う際にはtrueにするとよいです。

symfony 1.2.7とそれ以降でのみこの設定は利用可能です。

logger

sfContextアクセサー: $context->getLogger()

デフォルトコンフィギュレーション:

logger:
  class: sfAggregateLogger
  param:
    level: debug
    loggers:
      sf_web_debug:
        class: sfWebDebugLogger
        param:
          level: debug
          condition:       %SF_WEB_DEBUG%
          xdebug_logging:  true
          web_debug_class: sfWebDebug
      sf_file_debug:
        class: sfFileLogger
        param:
          level: debug
          file: %SF_LOG_DIR%/%SF_APP%_%SF_ENVIRONMENT%.log

prod環境のデフォルトコンフィギュレーション:

logger:
  class:   sfNoLogger
  param:
    level:   err
    loggers: ~

このファクトリは常に定義されますが、logging_enabled設定がonにセットされている場合のみロギングが行われます。

level

levelオプションはロガーのレベルを定義します。

可能な値: EMERGALERTCRITERRWARNINGNOTICEINFOもしくはDEBUG

loggers

loggersオプションは使用するロガーのリストを定義します。 リストは匿名ロガーファクトリの配列です。

組み込みのロガークラス: sfConsoleLoggersfFileLoggersfNoLoggersfStreamLoggersfVarLogger

controller

sfContextアクセサー: $context->getController()

デフォルトコンフィギュレーション:

controller:
  class: sfFrontWebController

匿名キャッシュファクトリ

いくつかのファクトリ(view_cachei18nrouting)はそれぞれ設定で定義されている場合、効果のあるキャッシュオブジェクトを利用できます。 キャッシュオブジェクトの設定はすべてのファクトリと似ています。 cacheキーは匿名キャッシュファクトリを定義します。 ほかのファクトリと同じように、これはclassparamエントリーをとります。 paramエントリーは与えられたキャッシュクラスで利用可能な任意のオプションをとります。

もっとも重要なのはprefixオプションで異なる環境/アプリケーション/プロジェクトのあいだでキャッシュを共有するもしくは分離できるようにします。

組み込みのキャッシュクラス: sfAPCCachesfEAcceleratorCachesfFileCachesfMemcacheCachesfNoCachesfSQLiteCachesfXCachCache

generator.yml設定ファイル »
« settings.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.