symfony:如何将自己的路径传递给上传的包
symfony: how to pass to uploaded bundle its own path
我正在使用 symfony 3.3
我创建了一个包,我通过 composer 安装到我的应用程序中的 vendor/
。我有这个包需要一些 yml 文件,我通过依赖注入注入它。到目前为止一切正常。但是我在这个包中已经有一个 yml 文件,这个包必须知道这个(他自己的)文件的路径。
目前,我的一个 classes
捆绑包中有这个
protected const LOCAL_FILE = __DIR__.'/../Resources/translations/ru.yml';
它工作得很好,但我认为这不是一个合适的解决方案。我尝试将 class 传递给 %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)
您可能使用了 Symfony\Component\HttpKernel::locateResource()
方法。
并且可以通过容器中的 @kernel
id 获得内核对象。
我正在使用 symfony 3.3
我创建了一个包,我通过 composer 安装到我的应用程序中的 vendor/
。我有这个包需要一些 yml 文件,我通过依赖注入注入它。到目前为止一切正常。但是我在这个包中已经有一个 yml 文件,这个包必须知道这个(他自己的)文件的路径。
目前,我的一个 classes
捆绑包中有这个protected const LOCAL_FILE = __DIR__.'/../Resources/translations/ru.yml';
它工作得很好,但我认为这不是一个合适的解决方案。我尝试将 class 传递给 %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)
您可能使用了 Symfony\Component\HttpKernel::locateResource()
方法。
并且可以通过容器中的 @kernel
id 获得内核对象。