【发布时间】:2013-01-20 18:09:24
【问题描述】:
我知道这可能是不可能的,但是有没有一种干净的方法可以在 YAML 配置/服务/等中使用 PHP 类常量。 Symfony2 的文件?
例如,如果我有这个:
namespace My\Bundle\DependencyInjection;
class MyClass
{
const MY_CONST = 'cookies';
}
这样的事情可能吗(在 .yml 文件中):
services:
my_service:
class: Some\Class
arguments:
- %My\Bundle\DependencyInjection\MyClass::MY_CONST%
这将大大有助于保持两者之间的一致性。
【问题讨论】:
-
你为什么不注入类然后访问你的服务中的常量或者将它的值作为参数添加到你的配置中并将它注入你的类以及你的服务中?无论如何,您可能想查看 OpenSky 的 RuntimeConfigBundle github.com/opensky/OpenSkyRuntimeConfigBundle>,它允许您将参数动态注入到您的配置中。文档有点稀缺,但应该足以让您入门。
-
我不希望设置之类的东西影响我以这种方式编写代码的方式(它会给我留下不好的印象)。我也不想在运行时注入它们,因为那样它就不能利用缓存。