Curry
PHP Framework

core

db

html

utility

Dispatcher

クラス概要

DispatcherクラスはリクエストURIよりコントローラーとアクションを取り出し、対象となるコントローラークラスのインスタンスの生成とアクションメソッドの実行を行います。
通常はこのクラスの存在を意識する必要はありません。

クラスファイル位置

curry/core/dispatcher.php

フィールド

公開されるフィールドはありません。

メソッド

メソッド名 アクセス 概要
dispatch public リクエストURLを解析し、処理対象となるコントローラーのインスタンスを生成してアクションメソッドを実行します。
isRewrite public ※バージョン1.3.0で削除されました。

apacheのmod_rewriteを利用してのアクセスか否かをDispatcherクラスに伝えます。このメソッドにより、apacheのmod_rewriteの有効・無効が切り替わるわけではないことに注意してください。
setDefaultController public ※バージョン1.3.0で削除されました。

URLにコントローラーキーが含まれない場合にデフォルトとするコントローラーキーを設定します。
setDefaultAction public ※バージョン1.3.0で削除されました。

URLにアクションキーが含まれない場合にデフォルトとするアクションキーを設定します。
setViewClass public ビュークラスとして利用するクラスのクラス名を指定します。何も指定しない場合、"ViewStandard"がデフォルトとなります。
enableSubController public ※バージョン1.3.0で削除されました。

コントローラーサブディレクトリの利用を許可するか否かを設定します。trueを指定することで許可されます。デフォルトでは許可されていませんので、許可しない場合は明示的にこのメソッドを実行する必要はありません。
許可した場合、僅かですがパフォーマンス的に不利になります。
enablePlugin public プラグインの利用を許可するか否かを設定します。trueを指定することで許可されます。デフォルトでは許可されていませんので、許可しない場合は明示的にこのメソッドを実行する必要はありません。
プラグインの詳細についてはマニュアルのコントローラーの章を参照してください。
許可した場合、僅かですがパフォーマンス的に不利になります。
setControllerQueryKey public ※バージョン1.3.0で削除されました。

mod_rewriteを利用しない場合に、URL中のコントローラーを表すクエリ文字列のキーを指定します。コントローラーのキーはデフォルトで"c"になっていますが、これを変更したい場合にこのメソッドを実行します。
setActionQueryKey public ※バージョン1.3.0で削除されました。

mod_rewriteを利用しない場合に、URL中のアクションを表すクエリ文字列のキーを指定します。アクションのキーはデフォルトで"a"になっていますが、これを変更したい場合にこのメソッドを実行します。
setValidatorClass public バリデータークラスとして利用するクラスのクラス名を指定します。何も指定しない場合、"Validator"がデフォルトとなります。
通常は指定の必要はありませんが、Validatorクラスを継承した独自の検証クラスを定義した場合に指定の必要があります。
isSend404 public URLからのコントローラーへのルーティング失敗時にHTTPレスポンスコード404を返すかどうかを設定します。
デフォルトは404を返すように設定されており、何もしなければ存在しないURLでリクエストがあった場合にはレスポンスコードは404になります。
このメソッドでfalseをしていすれば、ルーティング失敗時も200を返すようになります。

※バージョン1.1.0以降
setAppEnv public アプリケーション環境を示す環境変数値を設定します。
設定した文字列に応じて以下に影響があります。

・database.iniの読み込みセクション
・例外発生時に出力するエラーテンプレート
・Initializerクラスの環境変数別初期化メソッド

この仕組を利用すると実行環境別に接続DBや処理などを切り分けられるため、環境によるソースの違いを無くすことができます。
これらに関しての詳細はマニュアルを参照してください。


※バージョン1.4.0以降