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

Appearance settings

Commit c1c525c

Browse filesBrowse files
committed
[DI] Remove deprecated dumping an uncompiled container
1 parent c09e897 commit c1c525c
Copy full SHA for c1c525c

File tree

Expand file treeCollapse file tree

3 files changed

+30
-79
lines changed
Filter options
Expand file treeCollapse file tree

3 files changed

+30
-79
lines changed

‎src/Symfony/Component/DependencyInjection/CHANGELOG.md

Copy file name to clipboardExpand all lines: src/Symfony/Component/DependencyInjection/CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ CHANGELOG
55
-----
66

77
* removed `Container::isFrozen`
8+
* removed support for dumping an ucompiled container in `PhpDumper`
89

910
3.3.0
1011
-----

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

Copy file name to clipboardExpand all lines: src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
+26-75Lines changed: 26 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
use Symfony\Component\DependencyInjection\Parameter;
2626
use Symfony\Component\DependencyInjection\Exception\EnvParameterException;
2727
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
28+
use Symfony\Component\DependencyInjection\Exception\LogicException;
2829
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
2930
use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
3031
use Symfony\Component\DependencyInjection\LazyProxy\ProxyHelper;
@@ -80,7 +81,7 @@ class PhpDumper extends Dumper
8081
public function __construct(ContainerBuilder $container)
8182
{
8283
if (!$container->isCompiled()) {
83-
@trigger_error('Dumping an uncompiled ContainerBuilder is deprecated since version 3.3 and will not be supported anymore in 4.0. Compile the container beforehand.', E_USER_DEPRECATED);
84+
throw new LogicException('Cannot dump an uncompiled container.');
8485
}
8586

8687
parent::__construct($container);
@@ -154,17 +155,11 @@ public function dump(array $options = array())
154155
}
155156
}
156157

157-
$code = $this->startClass($options['class'], $options['base_class'], $options['namespace']);
158-
159-
if ($this->container->isCompiled()) {
160-
$code .= $this->addFrozenConstructor();
161-
$code .= $this->addFrozenCompile();
162-
$code .= $this->addFrozenIsCompiled();
163-
} else {
164-
$code .= $this->addConstructor();
165-
}
166-
167-
$code .=
158+
$code =
159+
$this->startClass($options['class'], $options['base_class'], $options['namespace']).
160+
$this->addConstructor().
161+
$this->addCompile().
162+
$this->addIsCompiled().
168163
$this->addServices().
169164
$this->addDefaultParametersMethod().
170165
$this->endClass().
@@ -783,7 +778,6 @@ private function addNewInstance(Definition $definition, $return, $instantiation,
783778
*/
784779
private function startClass($class, $baseClass, $namespace)
785780
{
786-
$bagClass = $this->container->isCompiled() ? 'use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;' : 'use Symfony\Component\DependencyInjection\ParameterBag\\ParameterBag;';
787781
$namespaceLine = $namespace ? "\nnamespace $namespace;\n" : '';
788782

789783
return <<<EOF
@@ -795,7 +789,7 @@ private function startClass($class, $baseClass, $namespace)
795789
use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
796790
use Symfony\Component\DependencyInjection\Exception\LogicException;
797791
use Symfony\Component\DependencyInjection\Exception\RuntimeException;
798-
$bagClass
792+
use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
799793
800794
/*{$this->docStar}
801795
* $class.
@@ -813,46 +807,12 @@ class $class extends $baseClass
813807
EOF;
814808
}
815809

816-
/**
817-
* Adds the constructor.
818-
*
819-
* @return string
820-
*/
821-
private function addConstructor()
822-
{
823-
$targetDirs = $this->exportTargetDirs();
824-
$arguments = $this->container->getParameterBag()->all() ? 'new ParameterBag($this->getDefaultParameters())' : null;
825-
826-
$code = <<<EOF
827-
828-
/*{$this->docStar}
829-
* Constructor.
830-
*/
831-
public function __construct()
832-
{{$targetDirs}
833-
parent::__construct($arguments);
834-
835-
EOF;
836-
837-
$code .= $this->addNormalizedIds();
838-
$code .= $this->addMethodMap();
839-
$code .= $this->addPrivateServices();
840-
$code .= $this->addAliases();
841-
842-
$code .= <<<'EOF'
843-
}
844-
845-
EOF;
846-
847-
return $code;
848-
}
849-
850810
/**
851811
* Adds the constructor for a compiled container.
852812
*
853813
* @return string
854814
*/
855-
private function addFrozenConstructor()
815+
private function addConstructor()
856816
{
857817
$targetDirs = $this->exportTargetDirs();
858818

@@ -888,7 +848,7 @@ public function __construct()
888848
*
889849
* @return string
890850
*/
891-
private function addFrozenCompile()
851+
private function addCompile()
892852
{
893853
return <<<EOF
894854
@@ -908,7 +868,7 @@ public function compile()
908868
*
909869
* @return string
910870
*/
911-
private function addFrozenIsCompiled()
871+
private function addIsCompiled()
912872
{
913873
return <<<EOF
914874
@@ -1001,7 +961,7 @@ private function addPrivateServices()
1001961
private function addAliases()
1002962
{
1003963
if (!$aliases = $this->container->getAliases()) {
1004-
return $this->container->isCompiled() ? "\n \$this->aliases = array();\n" : '';
964+
return "\n \$this->aliases = array();\n";
1005965
}
1006966

1007967
$code = " \$this->aliases = array(\n";
@@ -1046,9 +1006,7 @@ private function addDefaultParametersMethod()
10461006
}
10471007
$parameters = sprintf("array(\n%s\n%s)", implode("\n", $php), str_repeat(' ', 8));
10481008

1049-
$code = '';
1050-
if ($this->container->isCompiled()) {
1051-
$code .= <<<'EOF'
1009+
$code = <<<'EOF'
10521010
10531011
/**
10541012
* {@inheritdoc}
@@ -1102,13 +1060,13 @@ public function getParameterBag()
11021060
}
11031061

11041062
EOF;
1105-
if ('' === $this->docStar) {
1106-
$code = str_replace('/**', '/*', $code);
1107-
}
1063+
if ('' === $this->docStar) {
1064+
$code = str_replace('/**', '/*', $code);
1065+
}
11081066

1109-
if ($dynamicPhp) {
1110-
$loadedDynamicParameters = $this->exportParameters(array_combine(array_keys($dynamicPhp), array_fill(0, count($dynamicPhp), false)), '', 8);
1111-
$getDynamicParameter = <<<'EOF'
1067+
if ($dynamicPhp) {
1068+
$loadedDynamicParameters = $this->exportParameters(array_combine(array_keys($dynamicPhp), array_fill(0, count($dynamicPhp), false)), '', 8);
1069+
$getDynamicParameter = <<<'EOF'
11121070
switch ($name) {
11131071
%s
11141072
default: throw new InvalidArgumentException(sprintf('The dynamic parameter "%%s" must be defined.', $name));
@@ -1117,13 +1075,13 @@ public function getParameterBag()
11171075
11181076
return $this->dynamicParameters[$name] = $value;
11191077
EOF;
1120-
$getDynamicParameter = sprintf($getDynamicParameter, implode("\n", $dynamicPhp));
1121-
} else {
1122-
$loadedDynamicParameters = 'array()';
1123-
$getDynamicParameter = str_repeat(' ', 8).'throw new InvalidArgumentException(sprintf(\'The dynamic parameter "%s" must be defined.\', $name));';
1124-
}
1078+
$getDynamicParameter = sprintf($getDynamicParameter, implode("\n", $dynamicPhp));
1079+
} else {
1080+
$loadedDynamicParameters = 'array()';
1081+
$getDynamicParameter = str_repeat(' ', 8).'throw new InvalidArgumentException(sprintf(\'The dynamic parameter "%s" must be defined.\', $name));';
1082+
}
11251083

1126-
$code .= <<<EOF
1084+
$code .= <<<EOF
11271085
11281086
private \$loadedDynamicParameters = {$loadedDynamicParameters};
11291087
private \$dynamicParameters = array();
@@ -1142,13 +1100,6 @@ private function getDynamicParameter(\$name)
11421100
{$getDynamicParameter}
11431101
}
11441102
1145-
EOF;
1146-
} elseif ($dynamicPhp) {
1147-
throw new RuntimeException('You cannot dump a not-frozen container with dynamic parameters.');
1148-
}
1149-
1150-
$code .= <<<EOF
1151-
11521103
/*{$this->docStar}
11531104
* Gets the default parameters.
11541105
*
@@ -1595,7 +1546,7 @@ private function dumpLiteralClass($class)
15951546
*/
15961547
private function dumpParameter($name)
15971548
{
1598-
if ($this->container->isCompiled() && $this->container->hasParameter($name)) {
1549+
if ($this->container->hasParameter($name)) {
15991550
return $this->dumpValue($this->container->getParameter($name), false);
16001551
}
16011552

‎src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
+3-4Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,14 +130,13 @@ public function testAddParameters()
130130
}
131131

132132
/**
133-
* @group legacy
134-
* @expectedDeprecation Dumping an uncompiled ContainerBuilder is deprecated since version 3.3 and will not be supported anymore in 4.0. Compile the container beforehand.
133+
* @expectedException \Symfony\Component\DependencyInjection\Exception\LogicException
134+
* @expectedExceptionMessage Cannot dump an uncompiled container.
135135
*/
136136
public function testAddServiceWithoutCompilation()
137137
{
138138
$container = include self::$fixturesPath.'/containers/container9.php';
139-
$dumper = new PhpDumper($container);
140-
$this->assertEquals(str_replace('%path%', str_replace('\\', '\\\\', self::$fixturesPath.DIRECTORY_SEPARATOR.'includes'.DIRECTORY_SEPARATOR), file_get_contents(self::$fixturesPath.'/php/services9.php')), $dumper->dump(), '->dump() dumps services');
139+
new PhpDumper($container);
141140
}
142141

143142
public function testAddService()

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.