6

Symfony 2 バンドルには、services.yml などのアプリケーション構成ファイルを自動ロード/拡張するための優れた機能があります。ただし、これはルーティングには当てはまりません。バンドル (コントローラーまたは routing.yml 自体) からルーティング データをロードするには、アプリケーションの 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拡張を定義することもできると思います。load メソッドでは、コンテナーの定義を変更できるため、ルートを変更できます。

于 2013-01-29T20:48:17.493 に答える