2013-06-03 154 views
1

我不明白动态路由器和Symfony2的CMF链路由器之间的区别。我可以看到语法有所不同,但我没有理解。Symfony的CMF路由

谁能告诉我的区别概念?

回答

2

ChainRouter用于链的多个路由器。如果router1不能匹配到当前路径的路由,它将转到router2并检查它是否可以匹配路由。如果没有匹配,它会抛出一个404找不到的异常。

请注意,ChainRouter不能够匹配的路由。它必须有这样做的路由器。

DynamicRouter是路由器。它匹配路径。它不是Symfony2路由器,而是动态的。它将使用RouteProvider获取路线并将其与路径进行匹配。

+0

它澄清了很多。感谢Wouter J. – FortuneSoldier

2

链路由:

链路由是,可以在其中使用。采用链路由更然后1种路由方法即(一个默认的symfony路由或动态路由),我们可以指定一个概念,它的路由方法的在symfony路由器工作的基础上确定优先级。

例如。举个例子,如果我们为动态路由提供更高的优先级,那么symfony默认路由,然后在开始时symfony路由找到动态路由,如果没有找到,那么只有它尝试默认路由机制。这就是链路路由的工作原理在主链路由中,有助于使用多于一个路由机制并提供优先级。 如下所示是config.yml其中示出了两个路由机制的优先级: //config.yml

cmf_routing: 
    chain: 
     routers_by_id: 
     router.default: 200 
     cmf_routing.dynamic_router: 100 

优先级可以以类似于way.The设定得较高的没有将越高的优先级

动态路由:从动态源经由所谓的提供商 动态路由负载路由实例(可能是数据库或服务)。 但是,DynamicRouter还能够根据匹配的路由确定要使用哪个控制器和模板。

,如果你有兴趣了解更多: http://symfony.com/doc/current/cmf/book/routing.html