diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ContainerBuilderDebugDumpPass.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ContainerBuilderDebugDumpPass.php index 0df5420c769ee..9ce0a940b0d7f 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ContainerBuilderDebugDumpPass.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/ContainerBuilderDebugDumpPass.php @@ -29,7 +29,9 @@ public function process(ContainerBuilder $container) { $cache = new ConfigCache($container->getParameter('debug.container.dump'), true); if (!$cache->isFresh()) { - $cache->write((new XmlDumper($container))->dump(), $container->getResources()); + $cache->write((new XmlDumper($container))->dump([ + 'force_parameters_escape' => true, + ]), $container->getResources()); } } } diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index dae941c1f780e..df0362ed15a62 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -20,7 +20,7 @@ "ext-xml": "*", "symfony/cache": "~3.4.31|^4.3.4", "symfony/class-loader": "~3.2", - "symfony/dependency-injection": "^3.4.24|^4.2.5", + "symfony/dependency-injection": "^3.4.36|^4.3.9", "symfony/config": "^3.4.31|^4.3.4", "symfony/debug": "~2.8|~3.0|~4.0", "symfony/event-dispatcher": "~3.4|~4.0", diff --git a/src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php index cfc932843937f..aa6ba67930b30 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/XmlDumper.php @@ -49,7 +49,7 @@ public function dump(array $options = []) $container->setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); $container->setAttribute('xsi:schemaLocation', 'http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd'); - $this->addParameters($container); + $this->addParameters($container, isset($options['force_parameters_escape']) ? $options['force_parameters_escape'] : false); $this->addServices($container); $this->document->appendChild($container); @@ -59,14 +59,17 @@ public function dump(array $options = []) return $this->container->resolveEnvPlaceholders($xml); } - private function addParameters(\DOMElement $parent) + /** + * @param bool $forceEscape + */ + private function addParameters(\DOMElement $parent, $forceEscape) { $data = $this->container->getParameterBag()->all(); if (!$data) { return; } - if ($this->container->isCompiled()) { + if ($this->container->isCompiled() || $forceEscape) { $data = $this->escape($data); } diff --git a/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php index 1e795c7daf3bf..795f55ffedadc 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/YamlDumper.php @@ -51,7 +51,7 @@ public function dump(array $options = []) $this->dumper = new YmlDumper(); } - return $this->container->resolveEnvPlaceholders($this->addParameters()."\n".$this->addServices()); + return $this->container->resolveEnvPlaceholders($this->addParameters(isset($options['force_parameters_escape']) ? $options['force_parameters_escape'] : false)."\n".$this->addServices()); } /** @@ -212,15 +212,17 @@ private function addServices() /** * Adds parameters. * + * @param bool $forceEscape + * * @return string */ - private function addParameters() + private function addParameters($forceEscape) { if (!$this->container->getParameterBag()->all()) { return ''; } - $parameters = $this->prepareParameters($this->container->getParameterBag()->all(), $this->container->isCompiled()); + $parameters = $this->prepareParameters($this->container->getParameterBag()->all(), $this->container->isCompiled() || $forceEscape); return $this->dumper->dump(['parameters' => $parameters], 2); }