Dependency injection symfony DIC 3.0原型服务

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

原型服务是指作为依赖项传递的服务,它总是作为新实例传递。 最后,它类似于在需要的实例中克隆依赖项,但它是干净的解决方案

正如文中所述,scopes已被正式弃用。 原型服务是由scopes建立的

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

从查看列表中可以看出,
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