1。将参数传递给服务? 如果尚未在services.xml(或yaml)中定义,则将参数传递给服务的唯一方法是:
$container->setParameter('loader', $loader);
$container->get('myservice');
我想这种方式加载器可用于所有服务,而不仅仅是“myservice”?
2。将一组对象传递到服务中? Template / DelegatingEngine类将一个引擎对象数组引入构造函数中,我不知道如何在xml文件中定义它:
public function __construct(array $engines = array())
{
$this->engines = array();
foreach ($engines as $engine) {
$this->addEngine($engine);
}
}
我应该把什么放进
<service id="myCustomeFramework.TemplateEngine" class="path\to\DelegateEngine" scope="prototype">
<argument>how can i pass an array of engines here?</argument>
</service>
答案 0 :(得分:1)
回答1
是的,它将适用于使用该参数且在设置参数后调用的所有服务。
回答2
要使用xml将数组作为参数传递给服务,您必须以这种方式执行此操作:
<service id="myCustomeFramework.TemplateEngine" class="path\to\DelegateEngine" scope="prototype">
<argument type="collection">
<argument key="key">value</argument>
<argument key="key">value</argument>
<argument key="key">value</argument>
</argument>
</service>