Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8e1db2a

Browse files
[DependencyInjection] fix dumped container
1 parent aaa821b commit 8e1db2a

16 files changed

+184
-245
lines changed

src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1952,7 +1952,7 @@ private function getServiceCall(string $id, Reference $reference = null): string
19521952
}
19531953
$code = $this->addNewInstance($definition, '', $id);
19541954
if ($definition->isShared() && !isset($this->singleUsePrivateIds[$id])) {
1955-
return sprintf('$this->%s[%s] ??= %s', $definition->isPublic() ? 'services' : 'privates', $this->doExport($id), $code);
1955+
return sprintf('($this->%s[%s] ??= %s)', $definition->isPublic() ? 'services' : 'privates', $this->doExport($id), $code);
19561956
}
19571957
$code = "($code)";
19581958
} else {

src/Symfony/Component/DependencyInjection/Tests/Fixtures/config/services9.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,13 @@
137137
->tag('container.preload', ['class' => 'Some\Sidekick2'])
138138
->public();
139139

140+
$s->set('a_factory', 'Bar')
141+
->private();
142+
$s->set('a_service', 'Bar')
143+
->factory([service('a_factory'), 'getBar']);
144+
$s->set('b_service', 'Bar')
145+
->factory([service('a_factory'), 'getBar']);
146+
140147
$s->alias('alias_for_foo', 'foo')->private()->public();
141148
$s->alias('alias_for_alias', service('alias_for_foo'));
142149
};

src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,4 +189,12 @@
189189
->addTag('container.preload', ['class' => 'Some\Sidekick1'])
190190
->addTag('container.preload', ['class' => 'Some\Sidekick2']);
191191

192+
$container->register('a_factory', 'Bar');
193+
$container->register('a_service', 'Bar')
194+
->setFactory([new Reference('a_factory'), 'getBar'])
195+
->setPublic(true);
196+
$container->register('b_service', 'Bar')
197+
->setFactory([new Reference('a_factory'), 'getBar'])
198+
->setPublic(true);
199+
192200
return $container;

src/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services9.dot

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ digraph sc {
3737
node_runtime_error [label="runtime_error\nstdClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
3838
node_errored_definition [label="errored_definition\nstdClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
3939
node_preload_sidekick [label="preload_sidekick\nstdClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
40+
node_a_factory [label="a_factory\nBar\n", shape=record, fillcolor="#eeeeee", style="filled"];
41+
node_a_service [label="a_service\nBar\n", shape=record, fillcolor="#eeeeee", style="filled"];
42+
node_b_service [label="b_service\nBar\n", shape=record, fillcolor="#eeeeee", style="filled"];
4043
node_foo2 [label="foo2\n\n", shape=record, fillcolor="#ff9999", style="filled"];
4144
node_foo3 [label="foo3\n\n", shape=record, fillcolor="#ff9999", style="filled"];
4245
node_foobaz [label="foobaz\n\n", shape=record, fillcolor="#ff9999", style="filled"];

0 commit comments

Comments
 (0)