从Symfony 2捆绑包自动加载路由

时间:2013-01-29 16:05:41

标签: php symfony

Symfony 2软件包具有很好的自动加载/扩展应用程序配置文件的功能,例如services.yml。但是,路由不是这样,因为我必须手动编辑应用程序的routing.yml,以便从我的Bundle(Controller或routing.yml本身)加载路由数据。

是否可以无缝地加载此类路由配置?

----编辑

我最终做到了这一点,但它很丑陋地说:

<?php

use Symfony\Component\Routing\RouteCollection;

$collection = new RouteCollection();

foreach (glob(__DIR__.'/../../src/Vendor/MySystem/Plugins/*Bundle/Controller/', GLOB_ONLYDIR) as $controller) {
    $controller = str_replace(__DIR__.'/../../src/Vendor/MySystem/Plugins/', '', $controller);
    $collection->addCollection($loader->import("@$controller"));
}

return $collection;

1 个答案:

答案 0 :(得分:2)

我认为你应该照看“routing.loader”依赖注入标记 它允许您定义一个类来定义具有逻辑的路径

http://symfony.com/doc/current/reference/dic_tags.html#routing-loader

我认为您还可以在捆绑包中定义dependencyInjection扩展。 在load方法中,您可以更改容器定义以及路径..