yaf框架学习(6)路由

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);

发表评论

邮箱地址不会被公开。 必填项已用*标注