(Yaf >=1.0.0)
Yaf_Plugin_Abstract::preDispatch — 每次分发之前的钩子
$request, Yaf_Response_Abstract $response): void这个钩子会在分发循环中每次分发迭代之前触发。一次分发循环可能会运行多次迭代,因此这个钩子在一次请求中可能会被调用多次。
request正在被分发的 Yaf_Request_Abstract 实例。
response没有返回值。
示例 #1 Yaf_Plugin_Abstract::preDispatch() 示例
<?php
class LayoutPlugin extends Yaf_Plugin_Abstract
{
public function preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
{
/* 在动作分发之前,根据模块选择模板目录 */
$view = Yaf_Dispatcher::getInstance()->getView();
if ($request->getModuleName() == "Admin") {
$view->setScriptPath(APPLICATION_PATH . "/modules/admin/views");
}
}
}
/* 插件在引导(bootstrap)中注册 */
class Bootstrap extends Yaf_Bootstrap_Abstract
{
public function _initPlugin(Yaf_Dispatcher $dispatcher)
{
$dispatcher->registerPlugin(new LayoutPlugin());
}
}
?>