Php symfony:如何传递到自己的路径
我正在使用symfony 3.3 我创建了一个捆绑包,通过composer安装到应用程序中的Php symfony:如何传递到自己的路径,php,symfony,symfony-3.3,Php,Symfony,Symfony 3.3,我正在使用symfony 3.3 我创建了一个捆绑包,通过composer安装到应用程序中的vendor/中。我有这个包需要一些yml文件,我通过依赖注入将这些文件注入其中。到目前为止一切正常。但我也有一个yml文件已经在这个包中,这个包必须知道这个(他自己的)文件的路径 目前我的bundle的一个类中有这个 protected const LOCAL_FILE = __DIR__.'/../Resources/translations/ru.yml'; 它工作得很好,但我认为这不是一个合适的
vendor/
中。我有这个包需要一些yml文件,我通过依赖注入将这些文件注入其中。到目前为止一切正常。但我也有一个yml文件已经在这个包中,这个包必须知道这个(他自己的)文件的路径
目前我的bundle的一个类中有这个
protected const LOCAL_FILE = __DIR__.'/../Resources/translations/ru.yml';
它工作得很好,但我认为这不是一个合适的解决方案。我试图传递给这个类a%kernel.root\u 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)
你可能用了这个方法
内核对象可以通过容器中的
@kernel
id使用。检查内核的locateResource
方法@zerkms我在services.yml
中向类的构造函数传递什么才能访问此方法?@kernel
。。。。。。。。它起作用了!太好了!你能用这个建议给我一个答案吗?这样我就可以接受了。你能不能也展示一下你是如何准确地调用这个方法的,从而使答案反映出你的真实情况?它是有效的。我更新了我的帖子来展示我是如何做到的work@user7808407是的,但是您传递给locateResource
的是什么。