【发布时间】:2015-01-29 13:35:16
【问题描述】:
我正在努力解决 Symfony2 捆绑包之间的配置问题。
基本上,我有一个“经典”结构。
app/config/*.yml 包含各种全局配置和每个环境的路由
/src/Item1/Bundle1 到 Bundle10 是一些定义核心应用的包
/src/Api/ApiBundle 是一个定义“api”(我喜欢将其视为 REST 的一组 Web 服务)的包
问题:
Bundle1 为 kernel.exception 定义了一个 ExceptionListener,在 Bundle1 到 10 之间共享。
在 ApiBundle 中,我需要为同一个 kernel.exception 定义不同的 Listener,以便 ApiBundle 处理的路由在异常情况下触发。
我怎么能有这个?到目前为止,AppKernel 中加载的最后一个定义监听器的包似乎覆盖了监听器,并且无论路由或包如何,它都会在所有情况下触发。
有没有一种“symfony”的方式来做到这一点?在我看来,捆绑包应该是相当独立的。
谢谢!
【问题讨论】:
-
查看监听器优先级:symfony.com/doc/current/cookbook/service_container/…。您必须在每个捆绑包中设置优先级以确定谁先走,但这还不错。
标签: php symfony symfony-2.4