Skip to content

Commit d849eb3

Browse files
xabbuhGuilhemN
authored andcommitted
tag attribute depends on the Form component version (#1598)
1 parent f7464fd commit d849eb3

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

DependencyInjection/FOSRestExtension.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
use Symfony\Component\DependencyInjection\DefinitionDecorator;
1717
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
1818
use Symfony\Component\DependencyInjection\Reference;
19+
use Symfony\Component\Form\AbstractType;
20+
use Symfony\Component\Form\Extension\Core\Type\FormType;
1921
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
2022
use Symfony\Component\HttpFoundation\Response;
2123

@@ -88,7 +90,16 @@ private function loadForm(array $config, XmlFileLoader $loader, ContainerBuilder
8890
{
8991
if (!empty($config['disable_csrf_role'])) {
9092
$loader->load('forms.xml');
91-
$container->getDefinition('fos_rest.form.extension.csrf_disable')->replaceArgument(1, $config['disable_csrf_role']);
93+
94+
$definition = $container->getDefinition('fos_rest.form.extension.csrf_disable');
95+
$definition->replaceArgument(1, $config['disable_csrf_role']);
96+
97+
// BC for Symfony < 2.8: the extended_type attribute is used on higher versions
98+
if (!method_exists(AbstractType::class, 'getBlockPrefix')) {
99+
$definition->addTag('form.type_extension', ['alias' => 'form']);
100+
} else {
101+
$definition->addTag('form.type_extension', ['extended_type' => FormType::class]);
102+
}
92103
}
93104
}
94105

Resources/config/forms.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66

77
<services>
88
<service id="fos_rest.form.extension.csrf_disable" class="FOS\RestBundle\Form\Extension\DisableCSRFExtension">
9-
<!-- "alias" option for SF <2.8 -->
10-
<tag name="form.type_extension" alias="form" extended-type="Symfony\Component\Form\Extension\Core\Type\FormType" />
119
<argument type="service" id="security.token_storage" />
1210
<argument /> <!-- disable CSRF role -->
1311
<argument type="service" id="security.authorization_checker" />

0 commit comments

Comments
 (0)