PHP 8.5.10 Released!

插件

示例 #1 插件

插件通过继承 Yaf_Plugin_Abstract 并重写其六个 钩子方法中的一个或多个来挂入分发循环,然后通常在 Bootstrap 中使用 Yaf_Dispatcher::registerPlugin() 注册到分发器上:

<?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());
    }
}
?>
添加备注

用户贡献的备注

此页面尚无用户贡献的备注。
To Top