Symfony doesn't seem to load any classes found in AppBundle\Form\Extension while the documentation suggests it should after registering it as a service.
My extension looks like this:
<?php
//src/AppBundle/Form/Extension/FieldTypeExampleExtension.php
namespace AppBundle\Form\Extension;
use Symfony\Component\Form\AbstractTypeExtension;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class FieldTypeExampleExtension extends AbstractTypeExtension
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->setAttribute('example', $options['example']);
}
public function buildView(FormView $view, FormInterface $form, array $options)
{
$view->vars['example'] = $options['example'];
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'example' => null,
));
}
public function getExtendedType()
{
return 'form';
}
}
and it is registered as a service like so:
#services.yml
AppBundle.ExampleExtension:
class: AppBundle\Form\Extension\FieldTypeExampleExtension
tags:
- { name: form.type_extension, alias: field }
When I try to utilize this extension, I get the following error:
$builder->add('city', 'text',array(
'required' => false,
//'help is made available by https://github.com/simplethings/SimpleThingsFormExtraBundle
'help' => 'separate multiple cities with a comma. Example: Chicago, Miami, San Fransisco',
'example' => 'that those them'
))
The option "example" does not exist.
When putting in an obvious syntax error in FieldTypeExampleExtension.php, forms are still rendered without errors, leading me to believe the extension has never been loaded. The Symfony docs and other blog posts suggest that it would be loaded automatically.
Is there a way to force it to load? Or otherwise implement the extension?