【发布时间】:2017-07-07 19:31:28
【问题描述】:
我正在使用 symfony 3.3
我创建了一个包,我通过 composer 将它安装到我的应用程序中的 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)
【问题讨论】:
-
检查内核的
locateResource方法。 api.symfony.com/3.3/Symfony/Component/HttpKernel/… -
@zerkms 我应该将什么传递给
services.yml中的类的构造函数才能访问此方法? -
@kernel? ........ -
有效!那是!你能回答这个建议,以便我接受吗?
-
我有。您能否也说明一下您是如何调用该方法的,以便答案反映您的情况?
标签: php symfony symfony-3.3