依赖注入在 Symfony 中是一个冗长的主题,并且有大量关于细节的文档,所以我将在这里简单介绍一下。
parameters.yml 文件应包含平面键/值对。配置文件应该从中读取,参数可以包含数组,但是您不能像这样在 Symfony 中引用 subs。
相反,您可以为配置节点提供整个参数数组。它将带您到:
http ://symfony.com/doc/current/components/config/definition.html
下一步是更改捆绑包扩展类中的服务容器。
http://symfony.com/doc/current/components/dependency_injection/compilation.html#managing-configuration-with-extensions
从包含来自 yml 的参数的配置节点读取并创建容器参数的超集。
例如:
foreach($config['test'] as $key => $value) {
$container->setParameter($this->getAlias().'.test.'.$key, $value);
}
这将创建一段参数,例如:
myapp.test.first = aaaa
myapp.test.second = bbbb
并从控制器访问:
$value = $this->container->getParameter('myapp.test.first');
但是请注意,bundle 不应真正依赖于 parameters.yml 值的存在,因为如果该参数不存在,则上述语句将引发错误,除非您hasParameter
先调用。