Skip to content

Commit a7510a7

Browse files
committed
Removed XML services declaration in favor of PHP services declaration
1 parent 94fe8fe commit a7510a7

File tree

6 files changed

+23
-91
lines changed

6 files changed

+23
-91
lines changed

src/DependencyInjection/EnumExtension.php

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@
55
namespace Yokai\EnumBundle\DependencyInjection;
66

77
use Symfony\Bundle\TwigBundle\TwigBundle;
8-
use Symfony\Component\Config\FileLocator;
98
use Symfony\Component\DependencyInjection\ContainerBuilder;
10-
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
9+
use Symfony\Component\DependencyInjection\Reference;
1110
use Symfony\Component\Form\FormInterface;
1211
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
1312
use Symfony\Component\Validator\Validator\ValidatorInterface;
1413
use Yokai\EnumBundle\EnumInterface;
14+
use Yokai\EnumBundle\EnumRegistry;
15+
use Yokai\EnumBundle\Form\Extension\EnumTypeGuesser;
16+
use Yokai\EnumBundle\Form\Type\EnumType;
17+
use Yokai\EnumBundle\Twig\Extension\EnumExtension as EnumTwigExtension;
18+
use Yokai\EnumBundle\Validator\Constraints\EnumValidator;
1519

1620
/**
1721
* @author Yann Eugoné <[email protected]>
@@ -23,24 +27,34 @@ class EnumExtension extends Extension
2327
*/
2428
public function load(array $configs, ContainerBuilder $container): void
2529
{
26-
$xmlLoader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
27-
$xmlLoader->load('enum.xml');
30+
$container->register('yokai_enum.enum_registry', EnumRegistry::class);
31+
$container->setAlias(EnumRegistry::class, 'yokai_enum.enum_registry');
32+
33+
$registry = new Reference(EnumRegistry::class);
2834

2935
$requiresForm = interface_exists(FormInterface::class);
3036
$requiresValidator = interface_exists(ValidatorInterface::class);
3137
$requiresTwig = class_exists(TwigBundle::class);
3238

3339
if ($requiresForm) {
34-
$xmlLoader->load('form.xml');
35-
if (!$requiresValidator) {
36-
$container->removeDefinition('form_extention.type_guesser.enum');
40+
$container->register('yokai_enum.form_type.enum_type', EnumType::class)
41+
->setArgument('$enumRegistry', $registry)
42+
->addTag('form.type');
43+
if ($requiresValidator) {
44+
$container->register('yokai_enum.form_extension.enum_type_guesser', EnumTypeGuesser::class)
45+
->setArgument('$metadataFactory', new Reference('validator.mapping.class_metadata_factory'))
46+
->addTag('form.type_guesser');
3747
}
3848
}
3949
if ($requiresValidator) {
40-
$xmlLoader->load('validator.xml');
50+
$container->register('yokai_enum.validator_constraints.enum_validator', EnumValidator::class)
51+
->setArgument('$enumRegistry', $registry)
52+
->addTag('validator.constraint_validator');
4153
}
4254
if ($requiresTwig) {
43-
$xmlLoader->load('twig.xml');
55+
$container->register('yokai_enum.twig_extension.enum_extension', EnumTwigExtension::class)
56+
->setArgument('$enumRegistry', $registry)
57+
->addTag('twig.extension');
4458
}
4559

4660
$container->registerForAutoconfiguration(EnumInterface::class)

src/Form/Extension/EnumTypeGuesser.php

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
use Symfony\Component\Form\Guess\ValueGuess;
1111
use Symfony\Component\Validator\Constraint;
1212
use Symfony\Component\Validator\Constraints\Compound;
13-
use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface;
14-
use Yokai\EnumBundle\EnumRegistry;
1513
use Yokai\EnumBundle\Form\Type\EnumType;
1614
use Yokai\EnumBundle\Validator\Constraints\Enum;
1715

@@ -20,22 +18,6 @@
2018
*/
2119
class EnumTypeGuesser extends ValidatorTypeGuesser
2220
{
23-
/**
24-
* @var EnumRegistry
25-
*/
26-
private $enumRegistry;
27-
28-
/**
29-
* @param MetadataFactoryInterface $metadataFactory
30-
* @param EnumRegistry $enumRegistry
31-
*/
32-
public function __construct(MetadataFactoryInterface $metadataFactory, EnumRegistry $enumRegistry)
33-
{
34-
parent::__construct($metadataFactory);
35-
36-
$this->enumRegistry = $enumRegistry;
37-
}
38-
3921
/**
4022
* @inheritdoc
4123
*/

src/Resources/config/enum.xml

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/Resources/config/form.xml

Lines changed: 0 additions & 20 deletions
This file was deleted.

src/Resources/config/twig.xml

Lines changed: 0 additions & 14 deletions
This file was deleted.

src/Resources/config/validator.xml

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)