函数名称:Yaf_Route_Rewrite::__construct()
适用版本:Yaf 2.3.0及以上版本
用法:Yaf_Route_Rewrite::__construct()函数用于创建一个Yaf_Route_Rewrite实例,并设置路由规则。
示例:
$route = new Yaf_Route_Rewrite(
'/product/:id',
array(
'controller' => 'product',
'action' => 'detail'
)
);
在上述示例中,我们创建了一个Yaf_Route_Rewrite实例,并设置了一个路由规则,该规则将URL中的"/product/:id"部分映射到控制器为"product"、动作为"detail"的请求。
参数说明:
- 第一个参数是路由规则的匹配模式,可以使用冒号(:)来定义参数。例如,"/product/:id"表示匹配以"/product/"开头的URL,并将:id作为参数传递给控制器。
- 第二个参数是一个关联数组,用于指定控制器和动作的名称。在示例中,我们将控制器名称设置为"product",动作名称设置为"detail"。
注意事项:
- Yaf_Route_Rewrite需要在Yaf路由器中注册才能生效。可以通过调用Yaf_Router的addRoute()方法来实现。
$router = Yaf_Dispatcher::getInstance()->getRouter();
$router->addRoute('my_route', $route);
在这个示例中,我们获取了Yaf_Dispatcher的单例,并通过调用getRouter()方法获取了Yaf路由器的实例。然后,我们使用addRoute()方法将之前创建的路由实例添加到Yaf路由器中。
这样,当请求URL匹配到"/product/:id"模式时,Yaf将自动调用名为"product"的控制器的"detail"动作,并将:id作为参数传递给控制器。