如何在Symfony2外部控制器中定位资源?

如何在Symfony2外部控制器中定位资源?,symfony,Symfony,我知道在Symfony 2中,我们可以从控制器使用服务内核来定位资源,如下所示: $yamlFileKeys = $this->get('kernel')->locateResource('@CgboardAppBundle/Resources/config/myfile.yml'); 我的问题更多的是,当我们不在控制器中时,如何定位资源?我以前也尝试过类似的方法: file_get_contents('@CgboardAppBundle/Resources/config/my

我知道在Symfony 2中,我们可以从控制器使用服务内核来定位资源,如下所示:

$yamlFileKeys   = $this->get('kernel')->locateResource('@CgboardAppBundle/Resources/config/myfile.yml');
我的问题更多的是,当我们不在控制器中时,如何定位资源?我以前也尝试过类似的方法:

file_get_contents('@CgboardAppBundle/Resources/config/myfile.yml')

而且资源一直没有找到。有什么想法吗?

这取决于要加载的文件。 如果您想加载、处理和验证配置文件,有一个非常强大的组件可以实现这一点:

如果要加载其他文件类型,还有另一个组件,Finder组件

因此,如果您只想处理一个.yml文件,您可以使用YAML组件和Finder组件

use Symfony\Component\Yaml\Parser;
use Symfony\Component\Finder\Finder;

$yaml = new Parser();

$finder = new Finder();
$finder->files()->in(__DIR__);

foreach ($finder as $file) {
    $values = $yaml->parse($file->getContents());
    ...
}