2015-06-26 85 views
1

原型服务意味着服务,它作为始终依赖的新鲜实例传递。 它最终类似于克隆依赖关系的实例,在它需要的地方,但它的干净解决方案。symfony DIC 3.0原型服务

如书写on Symfony news Twitter,范围已正式被弃用。 原型服务由范围设置。

如何在Symfony DIC 3.0配置中设置原型服务? (我喜欢阳明)

回答

4

从看着它说,scope: prototype标志已被更改为shared: falseupgrade 2.7 to 2.8

从升级文件中取出....

一个新的共享标志被添加到服务定义在更换原型范围。

前:

use Symfony\Component\DependencyInjection\ContainerBuilder; 

$container = new ContainerBuilder(); 
$container 
    ->register('foo', 'stdClass') 
    ->setScope(ContainerBuilder::SCOPE_PROTOTYPE) 
; 

services: 
    foo: 
     class: stdClass 
     scope: prototype 

<services> 
    <service id="foo" class="stdClass" scope="prototype" /> 
</services> 

后:

use Symfony\Component\DependencyInjection\ContainerBuilder; 

$container = new ContainerBuilder(); 
$container 
    ->register('foo', 'stdClass') 
    ->setShared(false) 
; 

services: 
    foo: 
     class: stdClass 
     shared: false 

<services> 
    <service id="foo" class="stdClass" shared="false" /> 
</services> 
相关问题