【问题标题】:How symfony handles multiple bundles routing?symfony 如何处理多个 bundle 路由?
【发布时间】:2017-08-24 12:48:44
【问题描述】:

我正在尝试了解 symfony 的路由系统。

在 app/config/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 路由配置吗?我的疑问是关于路由流程。路由器是否遍历每个捆绑配置?

【问题讨论】:

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

标签: php symfony routing bundles


【解决方案1】:

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

这意味着如果定义了两条相同的路由(键,更一般地说),则第一个定义(并被解析)的路由就是被采用的路由。

如果你担心性能,我可以说这不是你应该担心的(它们被缓存了)

【讨论】:

    猜你喜欢
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 2010-12-14
    • 1970-01-01
    • 2011-12-13
    • 2021-10-13
    相关资源
    最近更新 更多