Zend FrameworkのControllerにPluginとして色々な処理を組み込めます。
マニュアルはこちら。
PluginはDispatcherの色々なアクションにロジックを追加できます。
- routeStartup() は、Zend_Controller_Front が ルータ をコールしてルートに対するリクエストの評価を始める前にコールされます。
- routeShutdown() は、 ルータ がリクエストのルーティングを終了した後にコールされます。
- dispatchLoopStartup() は、Zend_Controller_Front がディスパッチループに入る前にコールされます。
- preDispatch() は、アクションが ディスパッチャ でディスパッチされる前にコールされます。 このコールバックは、プロキシやフィルタ的な動作をさせることができます。 リクエストの内容を変更してディスパッチフラグをリセット (Zend_Controller_Request_Abstract::setDispatched(false) を使用します) することで、現在のアクションをスキップさせたり置き換えたりすることができます。
- postDispatch() は、アクションが ディスパッチャ でディスパッチされた後にコールされます。 このコールバックは、プロキシやフィルタ的な動作をさせることができます。 リクエストの内容を変更してディスパッチフラグをリセット (Zend_Controller_Request_Abstract::setDispatched(false) を使用します) することで、新しいディスパッチ先アクションを指定することができます。
- dispatchLoopShutdown() は、Zend_Controller_Front がディスパッチループを抜けた後にコールされます。
SessionやACLでよく使用されると思われるpreDispatchだとこんな感じでしょうか。
[php]
require_once 'Zend/Controller/Plugin/Abstract.php';
class hogePlugin extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
// ここでPluginの処理を行う。
}
}
?>
[/php]
組み込むには(起動ファイルなどで)フロントコントローラにセットします。
[php]
$front = Zend_Controller_Front::getInstance();
require_once(‘/YOUR_PLUGIN_PATH/hogePlugin.php’);
$front->registerPlugin(new hogePlugin());
[/php]
なかなか分かりやすい作りだと思います。
関連する記事:
- いわゆる半角カナや種依存文字などをメールで送信する方法 – t_komuraの日記
- requires PEAR Installer (version >= 1.6.0) などと出た時の pearアップグレード
- Zend FrameworkのViewRenderer使用時に自動レンダリングしない
- Zend Frameworkでob_gzhandlerを使用する。
- CodeSnifferを使い倒す
Powered by MightyAdsense
最近のコメント