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

Kla*_* S. 6 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;
Run Code Online (Sandbox Code Playgroud)

Jul*_*lin 2

我认为你应该照顾“routing.loader”依赖注入标签它让你定义一个类来用你的逻辑定义路由

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

我认为您还可以在包中定义 dependencyInjection 扩展。在您的加载方法中,您可以更改容器定义以及您的路线。