yaf的路由由两部分组成:路由和路由协议。
路由协议
yaf内置了6种类型的路由,详情可以查看:http://www.laruence.com/manual/yaf.routes.usage.html
默认使用的路由协议是Yaf_Route_Static
添加路由的方式
配置形式添加
打开app/conf/app.ini
,在[product : common]
下添加:
routes.route_name.type="rewrite"
routes.route_name.match="/product/:ident"
routes.route_name.route.controller=products
routes.route_name.route.action=view
route_name
代表是路由的名称,type="rewrite"
是路由协议的类型,match
是匹配的规则,:ident
代表要传递到变量名称,controller
则为控制器的名称,action
为方法名称。
然后打开app/Bootstrap.php
文件,在_initRoute
方法中添加:
$router = Yaf\Dispatcher::getInstance()->getRouter();
$router->addConfig(Yaf\Registry::get("config")->routes);
配置好后,以下url是对等的:
http://127.0.0.1/product/ipad
等同于
http://127.0.0.1/products/view/ident/ipad
路由器装载路由协议
打开app/Bootstrap.php
文件,在_initRoute
方法中添加:
$router = $dispatcher->getRouter();
//创建一个路由协议实例
$route = new Yaf\Route\Rewrite(
'product/:ident',
[
'controller' => 'products',
'action' => 'view'
]
);
$router->addRoute('product', $route);