原型服务意味着服务,它作为依赖项传递,始终是新的新实例。 最后它类似于克隆依赖实例所需的实例,但它的清晰解决方案。
正如写作on Symfony news Twitter,范围已被正式弃用。 原型服务由范围建立。
如何在Symfony DIC 3.0配置中设置原型服务? (我更喜欢yml)
答案 0 :(得分:4)
通过查看upgrade 2.7 to 2.8,它表示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>