Yaf_Plugin_Abstract::routerStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::routerStartup路由开始前的钩子

说明

public function Yaf_Plugin_Abstract::routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response): void

该钩子在请求被路由之前触发。它是调度流程中最早的钩子,因此通常用于 URL 重写,或者用于必须在 Yaf_Router::route 运行之前完成的路由决策。

参数

request

正在被调度的 Yaf_Request_Abstract 实例。

response

Yaf_Response_Abstract 实例。

返回值

没有返回值。

示例

示例 #1 Yaf_Plugin_Abstract::routerStartup() 示例

<?php
class RewritePlugin extends Yaf_Plugin_Abstract
{
    public function routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response)
    {
        /* 在路由运行之前,把 "/about" 形式的 URI
         * 重写为 "/page/about" */
        $uri = $request->getRequestUri();
        if (preg_match("#^/[a-z]+$#", $uri)) {
            $request->setRequestUri("/page" . $uri);
        }
    }
}

/* 插件在引导类中注册 */
class Bootstrap extends Yaf_Bootstrap_Abstract
{
    public function _initPlugin(Yaf_Dispatcher $dispatcher)
    {
        $dispatcher->registerPlugin(new RewritePlugin());
    }
}
?>

参见