diff --git a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php index 7f5a1143c764..3f945d157fdb 100644 --- a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php +++ b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php @@ -1075,6 +1075,14 @@ public function addExpressionLanguageProvider(ExpressionFunctionProviderInterfac $this->expressionLanguageProviders[] = $provider; } + /** + * @return ExpressionFunctionProviderInterface[] + */ + public function getExpressionLanguageProviders() + { + return $this->expressionLanguageProviders; + } + /** * Returns the Service Conditionals. * diff --git a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php index 3c318a656b58..9bc622503543 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php @@ -1399,6 +1399,11 @@ public function dumpParameter($name) return sprintf("\$this->getParameter('%s')", strtolower($name)); } + /** + * @deprecated Deprecated since 2.6.2, to be removed in 3.0. Use Symfony\Component\DependencyInjection\ContainerBuilder::addExpressionLanguageProvider instead. + * + * @param ExpressionFunctionProviderInterface $provider + */ public function addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider) { $this->expressionLanguageProviders[] = $provider; @@ -1493,7 +1498,8 @@ private function getExpressionLanguage() if (!class_exists('Symfony\Component\ExpressionLanguage\ExpressionLanguage')) { throw new RuntimeException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed.'); } - $this->expressionLanguage = new ExpressionLanguage(null, $this->expressionLanguageProviders); + $providers = array_merge($this->container->getExpressionLanguageProviders(), $this->expressionLanguageProviders); + $this->expressionLanguage = new ExpressionLanguage(null, $providers); } return $this->expressionLanguage;