Índice

Crear formularios reutilizables

Por el momento, hemos creado formularios directamente desde el controlador, gracias a FormBuilder. No obstante, una buena práctica consiste en extraer la configuración de un formulario dentro de una clase dedicada. Esto permite una mejor claridad del código y hace que el formulario sea reutilizable.

1. La clase AbstractTypeAbstractType Form:AbstractType

Para hacer esto, debemos crear una clase que implemente la interfaz Symfony\Component\Form\FormTypeInterface. Nos podemos ayudar de la clase Symfony\Component\Form\AbstractType que simplifica esta tarea. Esta clase contiene diferentes métodos relacionados con la configuración de un formulario.

En realidad, y como hemos visto con anterioridad, lo que entendemos por “formulario” simplemente es el nodo principal de una determinada arborescencia. A este respecto, la principal diferencia entre un formulario que permita la modificación de información en un cliente y un campo de tipo text, es que el primero es un nodo con hijos, mientras que el segundo es un nodo simple. Este es el motivo por el que para configurar un formulario dentro de una clase, definimos un tipo.

Esto puede llevar a la confusión, pero es muy importante entender el punto anterior, porque de este se deduce dos usos distintos de la clase AbstractType:

  • Configurar los formularios de una aplicación (inscripción de usuarios, paso de comandos, etc.).

  • Configurar sus propios tipos para poder reutilizarlos en sus aplicaciones, o ampliar los tipos nativos ...