【问题标题】:How can I programmatically modify a route from a different bundle in Symfony 3?如何在 Symfony 3 中以编程方式修改来自不同捆绑包的路由?
【发布时间】:2018-03-21 23:05:39
【问题描述】:

我正在使用 FOSRestBundle 并想修改它创建的路由。 我打算为 Rest Bundle 创建的每条路由添加默认参数。我查看了有关路由的 symfony 文档,但没有发现任何涵盖此用例的内容。

如果没有办法,我也不得不这样做

  • 直接修改 FOS Rest Bundle

  • 或者复制它的路由加载器代码,进行更改,然后将其添加到我自己的包中(根本不使用 Rest Bundle 路由。)

我不喜欢任何一个选项。

Symfony 是否提供允许对路由进行后处理的钩子?

【问题讨论】:

    标签: php symfony fosrestbundle symfony-routing


    【解决方案1】:

    FosRestBundle 有一个custom route loader。如果您查看 github 存储库,您将看到路由是在 RestActionReader.php 文件中定义的。所以唯一的解决方案是覆盖它并替换与服务fos_rest.routing.loader.reader.action相关的类

    【讨论】:

    • 呃,我什至没有考虑过这种方法。在接受这个作为答案之前,我将尝试一下。同时,我已经提高了 1 个答案。
    • 这会起作用——感谢您的建议。唯一的区别是我将覆盖 fos_rest.routing.loader.yaml_collection 服务,而不是你提到的那个。
    猜你喜欢
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 2017-11-05
    相关资源
    最近更新 更多