A simple Symfony bundle that implements Form classes for RobinHerbots/Inputmask jQuery plugin., (*1)
Installation
Install with composer :, (*2)
composer require it/input-mask-bundle
Enable the bundle in your project (only for Symfony 2-3. Sf4 does it automatically)
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new IT\InputMaskBundle\ITInputMaskBundle(),
// ...
);
}
Config
Symfony 2-3 method
Add the following line to your config.yml
:, (*3)
# app/config/config.yml
twig:
form_themes:
- 'ITInputMaskBundle:Form:inputMaskFields.html.twig'
Symfony 4 method
# config/packages/input_mask.yml
# Or in config/packages/twig.yml
twig:
form_themes:
- '@ITInputMask/Form/inputMaskFields.html.twig'
Usage
You can use these types in your Symfony forms :, (*4)
// Will result of a single_widget date picker
use IT\InputMaskBundle\Form\Type\DateMaskType;
use IT\InputMaskBundle\Form\Type\EmailMaskType;
use IT\InputMaskBundle\Form\Type\UrlMaskType;
//...
$builder
->add('birthdate', DateMaskType::class, array(
'label' => 'Date of birth',
))
->add('email', EmailMaskType::class, array(
'label' => 'Email field',
))
->add('url', UrlMaskType::class, array(
'label' => 'Url field',
))
;
OR, (*5)
// Will result of a text widget with the format "[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}"
use IT\InputMaskBundle\Form\Type\TextMaskType;
//...
$builder
->add('phone', TextMaskType::class, array(
'label' => 'Phone number',
'mask' => '99.99.99.99.99'
))
;
OR with regex type, (*6)
// Will result of a text widget with the format "[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}"
use IT\InputMaskBundle\Form\Type\TextMaskType;
//...
$builder
->add('phone', RegexMaskType::class, array(
'label' => 'Phone number',
'regex' => '[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}\.[0-9]{2}'
))
;
For the "mask" config, please refer to the RobinHerbots/Inputmask documentation :
https://github.com/RobinHerbots/Inputmask
or
http://robinherbots.github.io/Inputmask/, (*7)