No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
3 Hrs
33 Min
13 Seg
Curso de Symfony 6: Formularios

Curso de Symfony 6: Formularios

Profesor Italo Morales F

Profesor Italo Morales F

Explorando Symfony Form

5/20
Recursos

Aportes 2

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

El formulario se define mediante una clase llamada ContactType, que extiende de AbstractType, una clase base para la definición de formularios en Symfony.

Aquí hay una explicación línea por línea:

  1. <?php: Etiqueta de apertura de PHP.

  2. namespace App\Form;: Declaración del espacio de nombres para la clase. En este caso, la clase ContactType pertenece al espacio de nombres App\Form.

  3. use Symfony\Component\Form\AbstractType;: Importa la clase AbstractType de Symfony, que es una clase base para la definición de formularios.

  4. use Symfony\Component\Form\FormBuilderInterface;: Importa la interfaz FormBuilderInterface, que se utiliza para construir el formulario.

  5. use Symfony\Component\OptionsResolver\OptionsResolver;: Importa la clase OptionsResolver, que se utiliza para configurar las opciones del formulario.

  6. use Symfony\Component\Form\Extension\Core\Type\TextType;: Importa el tipo de campo de texto.

  7. use Symfony\Component\Form\Extension\Core\Type\TextareaType;: Importa el tipo de campo de área de texto.

  8. use Symfony\Component\Form\Extension\Core\Type\SubmitType;: Importa el tipo de campo de botón de envío.

  9. class ContactType extends AbstractType: Define la clase ContactType que extiende de AbstractType.

  10. public function buildForm(FormBuilderInterface $builder, array $options): void: Define un método llamado buildForm que toma un objeto FormBuilderInterface y un array de opciones como argumentos. Este método se utiliza para construir el formulario.

  11. $builder->add('email', TextType::class): Agrega un campo de texto para la dirección de correo electrónico.

  12. $builder->add('message', TextareaType::class, ['label' => 'Comentario, sugerencia o mensaje']): Agrega un campo de área de texto para el mensaje, con una etiqueta personalizada.

  13. $builder->add('save', SubmitType::class, ['label' => 'Enviar']): Agrega un botón de envío con la etiqueta “Enviar”.

  14. public function configureOptions(OptionsResolver $resolver): void: Define un método llamado configureOptions que toma un objeto OptionsResolver. Este método se utiliza para configurar las opciones del formulario.

  15. $resolver->setDefaults([]): Establece las opciones por defecto del formulario. En este caso, no se especifican opciones adicionales.

Este código es solo la definición del formulario. Para utilizarlo, deberías crear una instancia de esta clase en tu controlador Symfony y pasarla a la vista para que se renderice. Cuando el formulario se envía, Symfony manejará automáticamente la validación y el procesamiento de los datos ingresados.

Me estaba dando la impresión que el controlador se estaba llenando de código. De hecho, hay una **buena práctica** a seguir: **"Thin" Controllers, "Fat" Models.** Como todo, esto no es estricto, para un proyecto simple venga. Pero cuando se llena de código ya no es elegante, no es legible. Les comparto un potcast (del otro creador), hablando sobre este tema: <https://blog.laravel.com/laravel-snippet-11>