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' }