我正在尝试实现这个 http://symfony.com/doc/current/cookbook/routing/custom_route_loader.html#more-advanced-loaders
我需要捆绑路由在捆绑注册时自动激活
所以我在路径中创建了这个文件
src/Gabriel\AdminPanelBundle\Routing\AdvancedLoader.php
与内容
<?php
//namespace Acme\DemoBundle\Routing;
namespace Gabriel\AdminPanelBundle\Routing;
use Symfony\Component\Config\Loader\Loader;
use Symfony\Component\Routing\RouteCollection;
class AdvancedLoader extends Loader
{
public function load($resource, $type = null)
{
$collection = new RouteCollection();
$resource = '@GabrielAdminPanelBundle/Resources/config/import_routing.yml';
$type = 'yaml';
$importedRoutes = $this->import($resource, $type);
$collection->addCollection($importedRoutes);
return $collection;
}
public function supports($resource, $type = null)
{
return $type === 'advanced_extra';
}
}
我复制了这个配置
gabriel_admin_panel:
resource: "@GabrielAdminPanelBundle/Controller/"
type: annotation
prefix: /superuser
从
/app/config/routing.yml
并将其粘贴到我自己的配置文件中
/src/Gabriel/AdminPanelBundle/Resources/config/import_routing.yml
问题:
Symfony2 完全忽略了我的 AdvancedLoader.php 文件,我可以在其中放入任何语法错误,并且该站点甚至不会抛出错误,而且 router:debug 也不会显示包内定义的路由,除非我移动配置回原来的 router.yml 文件。
PS:清除缓存不会改变任何东西
编辑:当我添加服务和资源时,出现此错误
FileLoaderImportCircularReferenceException:在“/app/config/routing_dev.yml”中检测到循环引用(“/app/config/routing_dev.yml”>“/app/config/routing.yml”>“.”>“@GabrielAdminPanelBundle/Controller/” >“/app/config/routing_dev.yml”)。