对于可分发的Symfony包,我想允许通过parameters.yml
引用资源文件。
我想允许使用包别名,例如@FoobarSomethingBundle/Resources/foo/bar.png
将使用src/Foobar/SomethingBundle/Resources/foo/bar.png
解析为Kernel::locateResource
。
但显然我不能使用前导@
符号来表示引用以别名开头,而不是文件系统路径本身。例如:
### app/config/parameters.yml
some.value : "@FoobarSomethingBundle/Resources/foo/bar.png"
Symfony会将其解释为服务别名,清除缓存将失败:
[Symfony\Component\DependencyInjection\Exception\InvalidArgumentException]
You cannot dump a container with parameters that contain references to other services (reference to service "foobarsomethingbundle/resources/foo/bar.png" found in "/some.value").
因此我的问题:是否有一个功能或至少有关如何在配置文件中引用包别名的约定,甚至可以动态解决它们?
或许有一种方法可以“逐字地”注入参数,例如:当我将"%some.value%"
作为参数传递给服务时,它不会尝试将其解析为依赖项吗?
答案 0 :(得分:1)
只需使用双@符号
### app/config/parameters.yml
some.value : "@@FoobarSomethingBundle/Resources/foo/bar.png"