diff --git a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php index f4aa0582f7..4f2c4a15cb 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php @@ -981,9 +981,13 @@ EOF; if ($this->container->isCompiled()) { if (Container::class !== $baseClassWithNamespace) { $r = $this->container->getReflectionClass($baseClassWithNamespace, false); - - if (null !== $r && (null !== $constructor = $r->getConstructor()) && 0 === $constructor->getNumberOfRequiredParameters()) { - $code .= " parent::__construct();\n\n"; + if (null !== $r + && (null !== $constructor = $r->getConstructor()) + && 0 === $constructor->getNumberOfRequiredParameters() + && Container::class !== $constructor->getDeclaringClass()->name + ) { + $code .= " parent::__construct();\n"; + $code .= " \$this->parameterBag = null;\n\n"; } } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Container/NoConstructorContainer.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Container/NoConstructorContainer.php index 7514cc7c1b..b14b013f1f 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Container/NoConstructorContainer.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/Container/NoConstructorContainer.php @@ -2,6 +2,8 @@ namespace Symfony\Component\DependencyInjection\Tests\Fixtures\Container; -class NoConstructorContainer +use Symfony\Component\DependencyInjection\Container; + +class NoConstructorContainer extends Container { } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_constructor_without_arguments.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_constructor_without_arguments.php index 3020602b89..0a443f3a79 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_constructor_without_arguments.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_constructor_without_arguments.php @@ -24,6 +24,7 @@ class ProjectServiceContainer extends \Symfony\Component\DependencyInjection\Tes public function __construct() { parent::__construct(); + $this->parameterBag = null; $this->services = array(); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_with_optional_constructor_arguments.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_with_optional_constructor_arguments.php index d65ac7dfbc..6bf3c90613 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_with_optional_constructor_arguments.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/custom_container_class_with_optional_constructor_arguments.php @@ -24,6 +24,7 @@ class ProjectServiceContainer extends \Symfony\Component\DependencyInjection\Tes public function __construct() { parent::__construct(); + $this->parameterBag = null; $this->services = array();