Beispiel #1 Plugins
A plugin hooks into the dispatch cycle by extending Yaf_Plugin_Abstract and overriding one or more of its six hook methods, then is registered on the dispatcher with Yaf_Dispatcher::registerPlugin(), typically in the Bootstrap:
<?php
class UserPlugin extends Yaf_Plugin_Abstract
{
public function routerStartup(
Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
{
// before routing: inspect or rewrite the raw request URI
}
public function routerShutdown(
Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
{
// after routing: module/controller/action are known, good for per-route access control
}
public function dispatchLoopStartup(
Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
{
// before the dispatch loop: one-time setup shared by all dispatches
}
public function preDispatch(
Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
{
// before each dispatch: filter parameters or redirect before the action runs
}
public function postDispatch(
Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
{
// after each dispatch: decorate the response or the rendered view
}
public function dispatchLoopShutdown(
Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
{
// after the dispatch loop: final cleanup, logging or flushing
}
}
class Bootstrap extends Yaf_Bootstrap_Abstract
{
public function _initPlugin(Yaf_Dispatcher $dispatcher)
{
$dispatcher->registerPlugin(new UserPlugin());
}
}
?>