Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitda35a9c

Browse files
jvasseurnicolas-grekas
authored andcommitted
[DependencyInjection] Add tests using expressions as service factories
1 parent3b2919e commitda35a9c

File tree

5 files changed

+30
-0
lines changed

5 files changed

+30
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
2+
services:
3+
service_container:
4+
class:Symfony\Component\DependencyInjection\ContainerInterface
5+
public:true
6+
synthetic:true
7+
foo:
8+
class:Bar\FooClass
9+
public:true
10+
bar:
11+
class:Bar\FooClass
12+
public:true
13+
factory:'@=service("foo").getInstance()'
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
namespaceSymfony\Component\DependencyInjection\Loader\Configurator;
4+
5+
returnfunction (ContainerConfigurator$c) {
6+
$s =$c->services()->defaults()->public();
7+
8+
$s->set('foo','Bar\FooClass');
9+
$s->set('bar','Bar\FooClass')->factory(expr('service("foo").getInstance()'));
10+
};

‎src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services6.xml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@
6363
<serviceid="new_factory5"class="FooBarClass">
6464
<factoryservice="baz" />
6565
</service>
66+
<serviceid="factory_expression"class="FooClass">
67+
<factoryexpression="service('foo').getInstance()" />
68+
</service>
6669
<serviceid="alias_for_foo"alias="foo" />
6770
<serviceid="another_alias_for_foo"alias="foo"public="true"/>
6871
<serviceid="0"class="FooClass" />

‎src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services6.yml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ services:
4040
new_factory3:{ class: FooBarClass, factory: [BazClass, getInstance]}
4141
new_factory4:{ class: BazClass, factory: [~, getInstance]}
4242
new_factory5:{ class: FooBarClass, factory: '@baz' }
43+
factory_expression:
44+
class:FooClass
45+
factory:"@=service('foo').getInstance()"
4346
Acme\WithShortCutArgs:[foo, '@baz']
4447
alias_for_foo:'@foo'
4548
another_alias_for_foo:

‎src/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ public function provideConfig()
9797
yield ['inline_binding'];
9898
yield ['remove'];
9999
yield ['config_builder'];
100+
yield ['expression_factory'];
100101
}
101102

102103
publicfunctiontestAutoConfigureAndChildDefinition()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp