一尘不染

在Symfony2中访问与捆绑包相关的文件

php

在Symfony2应用的路由配置中,我可以引用这样的文件:

somepage:
    prefix: someprefix
    resource: "@SomeBundle/Resources/config/config.yml"

有什么方法可以访问控制器或其他PHP代码中与包相关的文件?特别是,我尝试使用Symfony \ Component \ Yaml \
Parser对象来解析文件,并且我不想绝对引用该文件。本质上,我想这样做:

$parser = new Parser();
$config = $parser->parse( file_get_contents("@SomeBundle/Resources/config/config.yml") );

我已经签出了Symfony \ Component \ Finder \
Finder类,但我认为这不是我想要的。有任何想法吗?还是我完全忽略了一种更好的方法?


阅读 187

收藏
2020-05-29

共1个答案

一尘不染

实际上,有一个服务可用于此目的,内核($this->get('kernel'))。它有一种称为的方法locateResource()

例如:

$kernel = $container->getService('kernel');
$path = $kernel->locateResource('@AdmeDemoBundle/path/to/file/Foo.txt');
2020-05-29