Skip to content

Instantly share code, notes, and snippets.

@zdenekdrahos
Last active August 29, 2015 14:12
Cleaner Symfony forms
<?php
namespace AppBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
abstract class CleanFormType extends AbstractType
{
private $formName;
public function __construct($formName)
{
$this->formName = $formName;
}
public function getName()
{
return $this->formName;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(
$this->getDefaults()
);
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->loadOptions($options);
$this->build($builder);
}
protected function getDefaults()
{
return array();
}
/** @SuppressWarnings("unused") */
protected function loadOptions(array $options)
{
}
abstract protected function build(FormBuilderInterface $builder);
}
services:
acme_demo.form.type.task:
class: AppBundle\Form\Type\TaskType
arguments:
- "task"
tags:
- { name: form.type, alias: task }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment