在 Symfony2 应用的路由配置中,我可以引用这样的文件:
somepage:
prefix: someprefix
resource: "@SomeBundle/Resources/config/config.yml"
有没有办法在 Controller 或其他 PHP 代码中访问与包相关的文件?特别是,我正在尝试使用 Symfony\Component\Yaml\Parser 对象来解析文件,并且我不想绝对引用该文件。本质上,我想这样做:
$parser = new Parser();
$config = $parser->parse( file_get_contents("@SomeBundle/Resources/config/config.yml") );
我已经检查了 Symfony\Component\Finder\Finder 类,但我认为这不是我想要的。有任何想法吗?或者也许我完全忽略了这样做的更好方法?
最佳答案
事实上,您可以使用一个服务,即内核 ($this->get('kernel')
)。它有一个名为 locateResource()
的方法。 .
例如:
$kernel = $container->getService('kernel');
$path = $kernel->locateResource('@AdmeDemoBundle/path/to/file/Foo.txt');
https://stackoverflow.com/questions/7585474/