6

Symfony 2 包有一个很好的特性来自动加载/扩展应用程序配置文件,比如 services.yml。但是,这不适用于路由,因为我必须手动编辑应用程序的 routing.yml 才能从我的 Bundle(控制器或 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;
4

1 回答 1

2

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

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

我想你也可以在你的包中定义一个dependencyInjection 扩展。在您的加载方法中,您可以更改容器定义等您的路线..

于 2013-01-29T20:48:17.493 回答