Skip to content

Commit 6787669

Browse files
committed
[DependencyInjection] Pass a Scope instance instead of a scope name.
1 parent 9572918 commit 6787669

File tree

4 files changed

+32
-2
lines changed

4 files changed

+32
-2
lines changed

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use Symfony\Component\DependencyInjection\ContainerInterface;
1818
use Symfony\Component\DependencyInjection\ContainerBuilder;
1919
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
20+
use Symfony\Component\DependencyInjection\Scope;
2021

2122
/**
2223
* GraphvizDumper dumps a service container as a graphviz file.
@@ -193,8 +194,8 @@ private function cloneContainer()
193194
$container->setDefinitions($this->container->getDefinitions());
194195
$container->setAliases($this->container->getAliases());
195196
$container->setResources($this->container->getResources());
196-
foreach ($this->container->getScopes() as $scope) {
197-
$container->addScope($scope);
197+
foreach ($this->container->getScopes() as $scope => $parentScope) {
198+
$container->addScope(new Scope($scope, $parentScope));
198199
}
199200
foreach ($this->container->getExtensions() as $extension) {
200201
$container->registerExtension($extension);

src/Symfony/Component/DependencyInjection/Tests/Dumper/GraphvizDumperTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,11 @@ public function testDumpWithFrozenCustomClassContainer()
6262
$dumper = new GraphvizDumper($container);
6363
$this->assertEquals(str_replace('%path%', __DIR__, file_get_contents(self::$fixturesPath.'/graphviz/services14.dot')), $dumper->dump(), '->dump() dumps services');
6464
}
65+
66+
public function testDumpWithScopes()
67+
{
68+
$container = include self::$fixturesPath.'/containers/container18.php';
69+
$dumper = new GraphvizDumper($container);
70+
$this->assertEquals(str_replace('%path%', __DIR__, file_get_contents(self::$fixturesPath.'/graphviz/services18.dot')), $dumper->dump(), '->dump() dumps services');
71+
}
6572
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?php
2+
3+
use Symfony\Component\DependencyInjection\ContainerBuilder;
4+
use Symfony\Component\DependencyInjection\Scope;
5+
6+
$container = new ContainerBuilder();
7+
$container->addScope(new Scope('request'));
8+
$container->
9+
register('foo', 'FooClass')->
10+
setScope('request')
11+
;
12+
$container->compile();
13+
14+
return $container;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
digraph sc {
2+
ratio="compress"
3+
node [fontsize="11" fontname="Arial" shape="record"];
4+
edge [fontsize="9" fontname="Arial" color="grey" arrowhead="open" arrowsize="0.5"];
5+
6+
node_foo [label="foo\nFooClass\n", shape=record, fillcolor="#eeeeee", style="filled"];
7+
node_service_container [label="service_container\nSymfony\\Component\\DependencyInjection\\ContainerBuilder\n", shape=record, fillcolor="#9999ff", style="filled"];
8+
}

0 commit comments

Comments
 (0)