From c1e5ca43dda0f61dac539cf1f4509deb36ac0a5d Mon Sep 17 00:00:00 2001 From: Matthias Althaus Date: Wed, 3 Jun 2015 12:15:52 +0200 Subject: [PATCH] Upgrade DependencyInjection to Symfony 2.7 This checks if "setFactory" is available in favor of "setFactoryClass". --- .../ExerciseHTMLPurifierExtension.php | 39 +++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/DependencyInjection/ExerciseHTMLPurifierExtension.php b/DependencyInjection/ExerciseHTMLPurifierExtension.php index 2b720f8e..ab208509 100644 --- a/DependencyInjection/ExerciseHTMLPurifierExtension.php +++ b/DependencyInjection/ExerciseHTMLPurifierExtension.php @@ -37,17 +37,34 @@ public function load(array $configs, ContainerBuilder $container) foreach ($configs as $name => $config) { $configDefinition = new Definition('%exercise_html_purifier.config.class%'); - $configDefinition->setFactoryClass('%exercise_html_purifier.config.class%'); - - if ('default' === $name) { - $configDefinition - ->setFactoryMethod('create') - ->addArgument($config); - } else { - $configDefinition - ->setFactoryMethod('inherit') - ->addArgument(new Reference('exercise_html_purifier.config.default')) - ->addMethodCall('loadArray', array($config)); + + // Handle Symfony >= 2.7 + if (method_exists($configDefinition, 'setFactory')) { + if ('default' === $name) { + $configDefinition + ->setFactory(array('%exercise_html_purifier.config.class%', 'create')) + ->addArgument($config); + } else { + $configDefinition + ->setFactory(array('%exercise_html_purifier.config.class%', 'inherit')) + ->addArgument(new Reference('exercise_html_purifier.config.default')) + ->addMethodCall('loadArray', array($config)); + } + } + // Handle Symfony < 2.7 + else { + $configDefinition->setFactoryClass('%exercise_html_purifier.config.class%'); + + if ('default' === $name) { + $configDefinition + ->setFactoryMethod('create') + ->addArgument($config); + } else { + $configDefinition + ->setFactoryMethod('inherit') + ->addArgument(new Reference('exercise_html_purifier.config.default')) + ->addMethodCall('loadArray', array($config)); + } } $configId = 'exercise_html_purifier.config.' . $name;