Dependency injection symfony DIC 3.0原型服务
原型服务是指作为依赖项传递的服务,它总是作为新实例传递。 最后,它类似于在需要的实例中克隆依赖项,但它是干净的解决方案 正如文中所述,scopes已被正式弃用。 原型服务是由scopes建立的 如何在Symfony DIC 3.0配置中设置原型服务? (我更喜欢yml)从查看列表中可以看出,Dependency injection symfony DIC 3.0原型服务,dependency-injection,symfony,Dependency Injection,Symfony,原型服务是指作为依赖项传递的服务,它总是作为新实例传递。 最后,它类似于在需要的实例中克隆依赖项,但它是干净的解决方案 正如文中所述,scopes已被正式弃用。 原型服务是由scopes建立的 如何在Symfony DIC 3.0配置中设置原型服务? (我更喜欢yml)从查看列表中可以看出,scope:prototype标志已更改为shared:false 从升级文件中获取 服务定义中添加了一个新的共享标志,以替换原型范围 之前: use Symfony\Component\Dependency
scope:prototype
标志已更改为shared:false
从升级文件中获取
服务定义中添加了一个新的共享标志,以替换原型范围
之前:
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>
使用Symfony\Component\DependencyInjection\ContainerBuilder;
$container=newcontainerbuilder();
$container
->寄存器('foo','stdClass')
->设置范围(ContainerBuilder::SCOPE_原型)
;
服务:
傅:
类别:stdClass
经营范围:原型
之后:
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>
使用Symfony\Component\DependencyInjection\ContainerBuilder;
$container=newcontainerbuilder();
$container
->寄存器('foo','stdClass')
->设置共享(假)
;
服务:
傅:
类别:stdClass
共享:false
从查看中可以看出,范围:原型
标志已更改为共享:假
从升级文件中获取
服务定义中添加了一个新的共享标志,以替换原型范围
之前:
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>
使用Symfony\Component\DependencyInjection\ContainerBuilder;
$container=newcontainerbuilder();
$container
->寄存器('foo','stdClass')
->设置范围(ContainerBuilder::SCOPE_原型)
;
服务:
傅:
类别:stdClass
经营范围:原型
之后:
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>
使用Symfony\Component\DependencyInjection\ContainerBuilder;
$container=newcontainerbuilder();
$container
->寄存器('foo','stdClass')
->设置共享(假)
;
服务:
傅:
类别:stdClass
共享:false