Symfony 2 YAML传递数组

时间:2012-02-15 18:20:25

标签: php configuration symfony yaml

我想知道在哪里可以获得有关symfony2的yaml配置中@somevar%somevar%等特殊语法的更多信息?

例如,使用@定义对服务的调用,即我们将依赖项传递给服务的方式。另一方面,%somevar%引用名为somevar的已定义参数的值。

所以,如果我这样做:

parameters:
    custom: "some value"
    another: %custom%

然后another将填充custom的值,在我的情况下是“某个值”。我的问题是,这些关系记录在哪里了?

我特别需要能够引用数组的元素,例如%somevar[somekey]%,但该语法不起作用。

提前致谢!

编辑:我发现了这个:Full merge key support. Full support for references, aliases, and full merge key. Don't repeat yourself by referencing common configuration bits.

在yaml docs中,但没有关于它的更为完整的文档..

1 个答案:

答案 0 :(得分:0)

你要搜索的并不是关于Yaml本身,而是关于Dependency Injection容器的Yaml加载器。

如果您搜索有关它的文档,则以下是旧组件(v1)的文档:http://components.symfony-project.org/dependency-injection/trunk/book/05-Service-Description

Symfony2附带了一个新组件(基于相同的原理)。您可以在此处找到官方文档:http://symfony.com/doc/current/book/service_container.html#service-parameters

关于您的问题,您无法访问DI参数的键,您必须手动压平。

你可以使用DI扩展来满足你的需要,例如:https://github.com/symfony/AsseticBundle/blob/master/DependencyInjection/AsseticExtension.php#L54(可能不是最好的例子)。例如,可能不是最好的例子。