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;