我正在使用symfony 3.3
我已经创建了一个捆绑包,我通过作曲家将其安装到我的应用程序中的vendor/
中。我有这个捆绑包需要一些 yml 文件,我通过依赖注入注入到它。到目前为止一切都很好。但是我在这个捆绑包中也已经有一个 yml 文件,这个捆绑包必须知道这个(他自己的(文件的路径。
目前,我的一个捆绑包课程中有这个
protected const LOCAL_FILE = __DIR__.'/../Resources/translations/ru.yml';
它工作得很好,但我认为这不是一个正确的解决方案。我试图通过一个%kernel.root_dir%
传递给这个班级,但从中我仍然无法猜测整个路径。
我应该如何以最好的方式做到这一点?
更新:按照 zerkms 的建议,我得到的结果是通过以下方式调用此方法:
my.translator:
...
calls:
- method: configure
arguments:
...
- '@kernel'
和带有locateResource
的部分
protected const LOCAL_FILE = '@MyBundle/Resources/translations/ru.yml';
....
....
$this->kernel->locateResource(self::LOCAL_FILE)
您可能已经使用了SymfonyComponentHttpKernel::locateResource()
方法。
内核对象可通过容器中的@kernel
id 使用。