diff --git a/DependencyInjection/GenemuFormExtension.php b/DependencyInjection/GenemuFormExtension.php index e6f54b5b..78c203f3 100644 --- a/DependencyInjection/GenemuFormExtension.php +++ b/DependencyInjection/GenemuFormExtension.php @@ -11,7 +11,7 @@ namespace Genemu\Bundle\FormBundle\DependencyInjection; -use Symfony\Component\DependencyInjection\DefinitionDecorator; +use Symfony\Component\DependencyInjection\ChildDefinition; use Symfony\Component\HttpKernel\DependencyInjection\Extension; use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; use Symfony\Component\DependencyInjection\Reference; @@ -227,11 +227,11 @@ private function registerImageConfiguration(array $configs, ContainerBuilder $co private function registerAutocompleteConfiguration(array $configs, ContainerBuilder $container) { $serviceId = 'genemu.form.jquery.type.autocomplete'; - $textDef = new DefinitionDecorator($serviceId); + $textDef = new ChildDefinition($serviceId); $textDef->addArgument('text')->addTag('form.type', array('alias' => 'genemu_jqueryautocomplete_text')); $container->setDefinition($serviceId . '.text', $textDef); - $doctrineDef = new DefinitionDecorator($serviceId); + $doctrineDef = new ChildDefinition($serviceId); $doctrineDef ->addArgument('entity') ->addArgument(new Reference('doctrine', ContainerInterface::NULL_ON_INVALID_REFERENCE)) @@ -239,7 +239,7 @@ private function registerAutocompleteConfiguration(array $configs, ContainerBuil ; $container->setDefinition($serviceId . '.entity', $doctrineDef); - $mongoDef = new DefinitionDecorator($serviceId); + $mongoDef = new ChildDefinition($serviceId); $mongoDef ->addArgument('document') ->addArgument(new Reference('doctrine_mongodb', ContainerInterface::NULL_ON_INVALID_REFERENCE)) @@ -254,7 +254,7 @@ private function registerSelect2Configuration(array $configs, ContainerBuilder $ { $serviceId = 'genemu.form.jquery.type.select2'; foreach (array_merge($this->getChoiceTypeNames(), array('hidden')) as $type) { - $typeDef = new DefinitionDecorator($serviceId); + $typeDef = new ChildDefinition($serviceId); $typeDef ->addArgument($type) ->addArgument($configs['configs']) @@ -275,7 +275,7 @@ private function registerSelect2Configuration(array $configs, ContainerBuilder $ private function loadExtendedTypes($serviceId, $name, ContainerBuilder $container) { foreach ($this->getChoiceTypeNames() as $type) { - $typeDef = new DefinitionDecorator($serviceId); + $typeDef = new ChildDefinition($serviceId); $typeDef->addArgument($type)->addTag('form.type', array('alias' => 'genemu_'.$name.'_'.$type)); $container->setDefinition($serviceId.'.'.$type, $typeDef); diff --git a/Form/JQuery/Type/SliderType.php b/Form/JQuery/Type/SliderType.php index 7fc677a4..da0a5bd0 100644 --- a/Form/JQuery/Type/SliderType.php +++ b/Form/JQuery/Type/SliderType.php @@ -12,9 +12,11 @@ namespace Genemu\Bundle\FormBundle\Form\JQuery\Type; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\IntegerType; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; use Symfony\Component\OptionsResolver\OptionsResolverInterface; +use Symfony\Component\OptionsResolver\OptionsResolver; /** * SliderType @@ -32,6 +34,11 @@ public function buildView(FormView $view, FormInterface $form, array $options) } public function setDefaultOptions(OptionsResolverInterface $resolver) + { + $this->configureOptions($resolver); + } + + public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array( 'min' => 0, @@ -40,12 +47,21 @@ public function setDefaultOptions(OptionsResolverInterface $resolver) 'orientation' => 'horizontal' )); - $resolver->setAllowedValues(array( - 'orientation' => array( - 'horizontal', - 'vertical' + $resolver->setAllowedValues("orientation", ["horizontal", "vertical"]); + } + + public function finishView(FormView $view, FormInterface $form, array $options) + { + parent::finishView($view, $form, $options); + $view->vars = array_replace( + $view->vars, + array( + 'min' => $form->getConfig()->getAttribute('min'), + 'max' => $form->getConfig()->getAttribute('max'), + 'step' => $form->getConfig()->getAttribute('step'), + 'orientation' => $form->getConfig()->getAttribute('orientation'), ) - )); + ); } /** @@ -53,13 +69,21 @@ public function setDefaultOptions(OptionsResolverInterface $resolver) */ public function getParent() { - return 'integer'; + return IntegerType::class; } /** * {@inheritdoc} */ public function getName() + { + return $this->getBlockPrefix; + } + + /** + * {@inheritdoc} + */ + public function getBlockPrefix() { return 'genemu_jqueryslider'; } diff --git a/Twig/Extension/FormExtension.php b/Twig/Extension/FormExtension.php index 3eed70ea..7a1321bc 100644 --- a/Twig/Extension/FormExtension.php +++ b/Twig/Extension/FormExtension.php @@ -12,7 +12,7 @@ namespace Genemu\Bundle\FormBundle\Twig\Extension; use Symfony\Component\Form\FormView; -use Symfony\Bridge\Twig\Form\TwigRendererInterface; +use Symfony\Component\Form\FormRenderer; /** * FormExtension extends Twig with form capabilities. @@ -32,9 +32,9 @@ class FormExtension extends \Twig_Extension /** * Constructs. * - * @param TwigRendererInterface $renderer + * @param FormRenderer $renderer */ - public function __construct(TwigRendererInterface $renderer) + public function __construct(FormRenderer $renderer) { $this->renderer = $renderer; } diff --git a/composer.json b/composer.json index 88aee8c6..824e3d21 100644 --- a/composer.json +++ b/composer.json @@ -20,9 +20,9 @@ ], "require": { "php": ">=5.3.2", - "symfony/framework-bundle": "~2.8 || ^3.0", - "symfony/form": "~2.8 || ^3.0", - "twig/twig": "~1.14" + "symfony/framework-bundle": "~2.8 || ^3.0 || ^4.4", + "symfony/form": "*", + "twig/twig": "*" }, "suggest": { "symfony/twig-bridge": "For integration into Twig templates",