diff --git a/DependencyInjection/LimeniusLiformExtension.php b/DependencyInjection/LimeniusLiformExtension.php index 5f69119..21467df 100644 --- a/DependencyInjection/LimeniusLiformExtension.php +++ b/DependencyInjection/LimeniusLiformExtension.php @@ -13,7 +13,7 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\Config\FileLocator; -use Symfony\Component\HttpKernel\DependencyInjection\Extension; +use Symfony\Component\DependencyInjection\Extension\Extension; use Symfony\Component\DependencyInjection\Loader; /** @@ -30,9 +30,9 @@ class LimeniusLiformExtension extends Extension */ public function load(array $configs, ContainerBuilder $container): void { - $loader = new Loader\XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); - $loader->load('transformers.xml'); - $loader->load('services.xml'); + $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); + $loader->load('transformers.yaml'); + $loader->load('services.yaml'); } } diff --git a/LimeniusLiformBundle.php b/LimeniusLiformBundle.php index b0355fe..5ec0cda 100644 --- a/LimeniusLiformBundle.php +++ b/LimeniusLiformBundle.php @@ -24,7 +24,7 @@ class LimeniusLiformBundle extends Bundle /** * @inheritDoc */ - public function build(ContainerBuilder $container) + public function build(ContainerBuilder $container): void { $container->addCompilerPass(new TransformerCompilerPass()); $container->addCompilerPass(new ExtensionCompilerPass()); diff --git a/Resources/config/services.xml b/Resources/config/services.xml deleted file mode 100644 index 9c8164c..0000000 --- a/Resources/config/services.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Resources/config/services.yaml b/Resources/config/services.yaml new file mode 100644 index 0000000..c0a059f --- /dev/null +++ b/Resources/config/services.yaml @@ -0,0 +1,52 @@ +services: + Limenius\Liform\Form\Extension\AddLiformExtension: + public: true + tags: + - { name: 'form.type_extension', extended_type: 'Symfony\Component\Form\Extension\Core\Type\FormType' } + + liform.add_schema_extension: + alias: 'Limenius\Liform\Form\Extension\AddLiformExtension' + public: true + + # Normalizes FormInterface when using the symfony serializer + Limenius\Liform\Serializer\Normalizer\FormErrorNormalizer: + public: true + arguments: + - '@translator' + tags: + - { name: 'serializer.normalizer', priority: -10 } + + liform.serializer.form_error_normalizer: + alias: 'Limenius\Liform\Serializer\Normalizer\FormErrorNormalizer' + public: true + + Limenius\Liform\Serializer\Normalizer\InitialValuesNormalizer: + public: true + tags: + - { name: 'serializer.normalizer', priority: -10 } + + liform.serializer.initial_values_normalizer: + alias: 'Limenius\Liform\Serializer\Normalizer\InitialValuesNormalizer' + public: false + + Limenius\Liform\Resolver: + public: true + + liform.resolver: + alias: 'Limenius\Liform\Resolver' + public: true + + Limenius\Liform\Liform: + public: true + arguments: + - '@Limenius\Liform\Resolver' + + liform: + alias: 'Limenius\Liform\Liform' + public: true + + liform.guesser.validator: + class: 'Limenius\Liform\Guesser\ValidatorGuesser' + public: true + arguments: + - '@validator.mapping.class_metadata_factory' diff --git a/Resources/config/transformers.xml b/Resources/config/transformers.xml deleted file mode 100644 index c9c1e0f..0000000 --- a/Resources/config/transformers.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Resources/config/transformers.yaml b/Resources/config/transformers.yaml new file mode 100644 index 0000000..8c2252d --- /dev/null +++ b/Resources/config/transformers.yaml @@ -0,0 +1,62 @@ +services: + Limenius\Liform\Transformer\AbstractTransformer: + abstract: true + arguments: + - '@translator' + - '@liform.guesser.validator' + + liform.transformer.integer: + class: 'Limenius\Liform\Transformer\IntegerTransformer' + parent: 'Limenius\Liform\Transformer\AbstractTransformer' + tags: + - { name: 'liform.transformer', form_type: 'integer' } + + liform.transformer.array: + class: 'Limenius\Liform\Transformer\ArrayTransformer' + arguments: + - '@translator' + - '@Limenius\Liform\Resolver' + - '@liform.guesser.validator' + tags: + - { name: 'liform.transformer', form_type: 'collection' } + + liform.transformer.compound: + class: 'Limenius\Liform\Transformer\CompoundTransformer' + arguments: + - '@translator' + - '@Limenius\Liform\Resolver' + - '@liform.guesser.validator' + tags: + - { name: 'liform.transformer', form_type: 'compound' } + + liform.transformer.choice: + class: 'Limenius\Liform\Transformer\ChoiceTransformer' + parent: 'Limenius\Liform\Transformer\AbstractTransformer' + tags: + - { name: 'liform.transformer', form_type: 'choice' } + + liform.transformer.string: + class: 'Limenius\Liform\Transformer\StringTransformer' + parent: 'Limenius\Liform\Transformer\AbstractTransformer' + tags: + - { name: 'liform.transformer', form_type: 'text' } + - { name: 'liform.transformer', form_type: 'url', widget: 'url' } + - { name: 'liform.transformer', form_type: 'search', widget: 'search' } + - { name: 'liform.transformer', form_type: 'money', widget: 'money' } + - { name: 'liform.transformer', form_type: 'password', widget: 'password' } + - { name: 'liform.transformer', form_type: 'textarea', widget: 'textarea' } + - { name: 'liform.transformer', form_type: 'time', widget: 'time' } + - { name: 'liform.transformer', form_type: 'percent', widget: 'percent' } + - { name: 'liform.transformer', form_type: 'email', widget: 'email' } + + liform.transformer.number: + class: 'Limenius\Liform\Transformer\NumberTransformer' + parent: 'Limenius\Liform\Transformer\AbstractTransformer' + tags: + - { name: 'liform.transformer', form_type: 'number' } + + liform.transformer.boolean: + class: 'Limenius\Liform\Transformer\BooleanTransformer' + parent: 'Limenius\Liform\Transformer\AbstractTransformer' + tags: + - { name: 'liform.transformer', form_type: 'checkbox', widget: 'checkbox' }