routing.yml設定ファイル
routing.yml
設定ファイルはルートの定義を可能にします。
アプリケーション用のメインのrouting.yml
設定ファイルはapps/APP_NAME/config/
ディレクトリで見つかります。
routing.yml
設定ファイルは名前つきのルートの定義のリストを含みます:
ROUTE_1: # definition of route 1 ROUTE_2: # definition of route 2 # ...
リクエストがあると、ルーティングシステムはやってくるURLのルートがマッチするか試します。
最初にマッチするルートが優先されるので、routing.yml
設定ファイルで定義されるルートの順序は重要です。
routing.yml
設定ファイルが読み込まれるとき、それぞれのルートがclass
クラスのオブジェクトに変換されます:
ROUTE_NAME: class: CLASS_NAME # configuration if the route
class
クラスはsfRoute
基底クラスを継承します。
クラスが提供されない場合、sfRoute
基底クラスがフォールバックとして使われます。
note
routing.yml
設定ファイルはPHPファイルとしてキャッシュされます;
処理はsfRoutingConfigHandler
クラスによって自動的に管理されます。
ルートクラス
ルートのコンフィギュレーション
routing.yml
設定ファイルはルートを細かく設定するための複数のコンフィギュレーションをサポートします。
これらのコンフィギュレーションはそれぞれのルートをオブジェクトに変換するためにsfRoutingConfigHandler
クラスによって使われます。
class
デフォルト: sfRoute
(もしくはtype
がcollection
である場合sfRouteCollection
、下記を参照)
ルートに使うルートクラスはclass
設定によって変更できます。
url
デフォルト: /
url
設定は現在のリクエストのために使われるルートに対してやってくるURLがマッチしなければならないパターンです。
パターンは複数のセグメントで構成されます:
- 変数(コロン
:
をプレフィックスとする単語) - 定数
- キー/値のペアのシーケンスにマッチするワイルドカード(
*
)
それぞれのセグメントはあらかじめ定義される区切り文字の1つで区切らなければなりません(デフォルトでは/
もしくは.
)。
params
デフォルト: 空の配列
params
設定はルートに関連づけされるパラメーターの配列を定義します。
これらはurl
に含まれる変数、もしくはこのルートに関連する変数のためのデフォルト値になります。
param
デフォルト: 空の配列
この設定はparams
設定と同等です。
options
デフォルト: 空の配列
options
設定はふるまいを細かくカスタマイズするためにルートオブジェクトに渡すオプションの配列です。
次のセクションでそれぞれのルートクラスで利用可能なオプションを説明します。
requirements
デフォルト: 空の配列
requirements
設定はurl
変数で満たさなければならないルート要件の配列です。
キーはurl変数で値は変数がマッチしなければならない正規表現です。
tip
正規表現は別の正規表現に含まれるので、区切り文字でこれらを囲んだり、値全体がマッチするように^
もしくは$
をつける必要はありません。
type
デフォルト: null
collection
にセットされている場合、ルートはルートコレクションとして読み込まれます。
note
class
の名前にCollection
の単語が含まれる場合、この設定はコンフィギュレーションハンドラーによって自動的にcollection
にセットされます。
このことはたいていの場合この設定を使う必要のないことを意味します。
sfRoute
すべてのルートクラスはsfRoute
基底クラスを継承します。
この基底クラスは必須のルート設定を提供します。
sfRequestRoute
sf_method
デフォルト: get
sf_method
オプションはrequirements
配列で使われます。
これはルートにマッチする処理のなかでHTTPリクエストを強制します。
sfObjectRoute
sfObjectRoute
の次のすべてのオプションはrouting.yml
設定ファイルのoptions
設定内部になければなりません。
model
model
オプションは必須であり現在のルートに関連するモデルクラスの名前です。
type
type
オプションは必須でありモデルのために必要なルートの種類です。
これはobject
もしくはlist
のどちらかになります。
object
型のルートは単独のモデルオブジェクトを表し、list
型のルートはモデルオブジェクトのコレクションを表します。
method
method
オプションは必須です。
このオプションはこのルートに関連するオブジェクトを読み取るためにモデルクラスで呼び出すメソッドです。
これはstaticなメソッドでなければなりません。
このメソッドは引数として解析されるルートのパラメーターで呼び出されます。
allow_empty
デフォルト: true
allow_empty
オプションがfalse
にセットされる場合、model
のmethod
呼び出しによってオブジェクトが返されない場合、ルートは404の例外を投げます。
convert
デフォルト: toParams
convert
オプションはこのモデルオブジェクトに基づいてルートを生成するためにモデルを適切なパラメーターの配列に変換するために呼び出すメソッドです。
これは少なくともルートパターンの必須パラメーターを持つ配列を返さなければなりません(url
設定で定義される)。
sfPropelRoute
method_for_criteria
デフォルト: コレクションにはdoSelect
、単独のオブジェクトにはdoSelectOne
method_for_criteria
オプションは現在のリクエストに関連するオブジェクトを読み取るためにピアクラスで呼び出されるメソッドを定義します。
メソッドは引数として解析されるルートのパラメーターで呼び出されます。
sfDoctrineRoute
method_for_query
デフォルト: none
method_for_query
オプションは現在のリクエストに関連するオブジェクトを読み取るためにモデルを呼び出すメソッドを定義します。
現在のクエリオブジェクトは引数として渡されます。
オプションがセットされていない場合、クエリはexecute()
メソッドで"実行"されるだけです。
sfRouteCollection
sfRouteCollection
基底クラスはルートのコレクションを表します。
sfObjectRouteCollection
model
model
オプションは必須で現在のルートに関連するモデルクラスの名前です。
actions
デフォルト: false
actions
オプションはルートに許可されるアクションの配列を定義します。
アクションはすべての利用可能なアクションのサブセット: list
、new
、create
、edit
、update
、delete
とshow
でなければなりません。
オプションがfalse
にセットされている場合、デフォルトではwith_show
オプションが、false
にセットされている場合show
アクション以外のすべてのアクションが利用可能になります(下記を参照)。
module
デフォルト: ルートの名前
module
オプションはモジュールの名前を定義します。
prefix_path
デフォルト: ルートの名前の前につけられる/
prefix_path
オプションはすべてのurl
パターンの先頭につけられるプレフィックスを指定します。
これは任意の有効なパターンになり変数と複数のセグメントを含むことができます。
column
デフォルト: id
column
オプションはモデルオブジェクト用の一意的な識別子として使うモデルのカラムを定義します。
with_show
デフォルト: true
show
アクションはルート用に許可されるアクションに含めなければならないか決定するためにwith_show
オプションはactions
オプションがfalse
にセットされているときに使われます。
segment_names
デフォルト: array('edit' => 'edit', 'new' => 'new'),
segment_names
はedit
とnew
アクション用にurl
パターンで使う単語を定義します。
model_methods
デフォルト: 空の配列
model_methods
オプションはモデルからオブジェクトを読み取るために呼び出すメソッドを定義します(sfObjectRoute
のmethod
オプションを参照)。
これは実際にはlist
とobject
メソッドを定義する配列です:
model_methods: list: getObjects object: getObject
requirements
デフォルト: column
に対して\d+
requirements
オプションはルート変数に適用するルート要件の配列を定義します。
with_wildcard_routes
デフォルト: false
with_wildcard_routes
オプションは2つのワイルドカードのルート: (1つは単独のオブジェクト用、もう1つはオブジェクトコレクション用)を通してアクションにアクセスできるようにします。
route_class
デフォルト: sfObjectRoute
route_class
オプションはコレクションに使われるデフォルトのルートオブジェクトをオーバーライドします。
collection_actions
デフォルト: 空の配列
collection_actions
オプションはコレクションルートで利用可能な追加アクションの配列を定義します。
object_actions
デフォルト: 空の配列
object_actions
オプションはオブジェクトルートで利用可能な追加アクションの配列を定義します。
sfPropelRouteCollection
sfPropelRouteCollection
ルートクラスはsfRouteCollection
を継承し、デフォルトのルートクラスをsfPropelRoute
に変更します(上記のroute_class
オプションを参照)。
sfDoctrineRouteCollection
sfDoctrineRouteCollection
ルートクラスはsfRouteCollection
を継承し、デフォルトのルートクラスをsfDoctrineRoute
に変更します(上記のroute_class
オプションを参照)。
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.