1

Is there any way to register bundle's routing from within bundle itself and not importing it in the main routing file? Now my routing.yml looks like this:

my_route:
    resource: "@MyExampleAdhocBundle/Resources/config/routing.yml"
    prefix:   /

However, I would like to somehow enable bundle routing in ExampleBundle class or bundle config, so it will be on only if bundle is registered in AppKernel.

4

3 回答 3

0

您是否尝试在捆绑扩展文件(AcmeBudle 的 AcmeDemoExtension)中执行此操作?

我认为您应该Kernel::buildContainer深入了解它是如何完成的以及如何处理它。

于 2013-09-10T15:38:37.347 回答
0

我认为自定义路由加载器就是答案。

自定义路由加载器允许您将路由添加到应用程序而不包括它们,例如,在 Yaml 文件中。当您有一个包但不想手动将包的路由添加到 app/config/routing.yml 时,这会派上用场。当您想要使捆绑包可重用或开源它时,这可能尤其重要,因为这会减慢安装过程并使其容易出错。或者,当您希望根据某些约定或模式自动生成或定位您的路线时,您也可以使用自定义路线加载器。

于 2013-09-10T15:51:05.347 回答
0

不可以。对于每个捆绑包,必须将路由导入routing.yml. 每个流行的捆绑包(如 FOSUserBundle)也必须这样做。

所以没有包可以覆盖用户路由。导入路由routing.yml提供了在此导入路由上定义前缀或主机选项的选项。

于 2013-09-10T15:23:32.287 回答