2017-08-24 34 views
0

我想了解symfony的路由系统。symfony如何处理多个捆绑包路由?

在应用程序/配置/ routing.yml中,我有来自两个不同的束 '

firstbundle: 
    resource: "@FirstBundle/Resources/config/routing.yml" 
    prefix: /api 

secondbundle: 
    resource: "@SecondBundle/Resources/config/routing.yml" 
    prefix: /api 

`

所以,如果我正在请求像两个路由配置,

https://example.com/app.php/api/images/ (在第一捆绑配置中定义)

https://example.com/app.php/api/views/(定义在第二捆绑配置中)

路由器如何决定使用哪个捆绑包?

假设我要访问api./views,在这种情况下,它是否也会检查FirstBundle路由配置?我怀疑是关于路由流。路由器是否遍历每个捆绑配置?

+1

Symfony的构建(和缓存)所有路线的一个列表。捆绑信息不会保留。 bin/console debug:路由器可以提供帮助。我可能会补充一点,除非您计划在其他应用程序中单独打包和重新使用捆绑软件包,否则多捆绑软件没有多少理由。 – Cerad

回答

2

与其他配置参数一样,路由将按照它们在文件中出现的顺序进行解析。

这意味着如果定义了两个相同的路由(键,更一般而言),则第一个被定义(以及如此解析)的路由是被采用的路由。

如果你对表演的担心,我可以告诉大家,这不是你应该担心(他们会被缓存)