在symfony2自定义路由器中获取file_locator服务

时间:2014-07-14 08:14:19

标签: php symfony url-routing

我想按照http://symfony.com/doc/current/cookbook/routing/custom_route_loader.html中的说明创建自定义路由加载器。 我要做的是从xml文件中读取路径(不是" symfony xml"格式)并创建相应的路由集合。但是我想使用' @& #39; directive.as in:

xmlRoutes:
    resource: '@FooBarBundle/Resources/routes.xml'

但是为了解决routes.xml的路径,我需要' file_locator'来自container的服务。是否可以访问自定义路由器类中的服务。如果没有,我如何创建symfony \ Component \ Config \ FileLocator来解析该路径?

1 个答案:

答案 0 :(得分:0)

是的,您可以访问file_locator,因为它是service。您需要做的是让您的custom_route_loader服务本身(我不会阅读您链接的食谱,但我很确定他们会建议将其定义为服务)并注入{{1}服务到它。

所以基本上你会做像

这样的事情
file_locator

进入CustmRouteLoaderClass

#config.yml
[...]
services:
  yourbundlename.custom_route_loader:
    class: Path\To\Your\Bundle\CustomRouteLoader
    arguments: [ @file_locator ]