Formularios en Drupal | Introducción a Form API

     Las clases de formulario implementan \Drupal\Core\Form\FormInterface y el flujo de trabajo básico de un formulario se define mediante los métodos buildFormvalidateForm y submitForm de la interfaz.

     Cuando se solicita un formulario, se define como un arreglo (array) representable, a menudo denominada arreglo (array) API de formulario o simplemente arreglo (array) $form.

     El arreglo $form se convierte a HTML mediante el proceso de representación y se muestra al usuario final. Cuando un usuario envía un formulario, la solicitud se realiza a la misma URL en la que se mostró el formulario, Drupal nota los datos HTTP POST entrantes en la solicitud y esta vez, en lugar de crear el formulario y mostrarlo como HTML, crea el formulario y luego procede a llamar a los controladores de validación y envío correspondientes.

     Definir formularios como arreglos estructurados, en lugar de HTML directo, tiene muchas ventajas, entre ellas:

  • Salida HTML coherente para todos los formularios.
  • Los formularios provistos por un módulo pueden ser modificados fácilmente por otro sin una lógica compleja de búsqueda y reemplazo.
  • Los elementos de formularios complejos, como la carga de archivos y los widgets de votación, se pueden encapsular en paquetes reutilizables que incluyen lógica de visualización y procesamiento.

     Hay varios tipos de formularios comúnmente utilizados en Drupal. Cada uno tiene una clase base que puede ampliar en su propio módulo personalizado.

Primero, identifique el tipo de formulario que necesita construir:

  • Una forma genérica. Ampliar FormBase..
  • Un formulario de configuración que permite a los administradores actualizar la configuración de un módulo. Ampliar ConfigFormBase.
  • Un formulario para eliminar contenido o configuración que proporciona un paso de confirmación. Ampliar ConfigFormBase.

     FormBase implementa FormInterface, y tanto ConfigFormBase como ConfirmFormBase extienden FormBase, por lo tanto, cualquier formulario que amplíe estas clases debe implementar algunos métodos necesarios.

Métodos requeridos


FormBase implementa FormInterface y, por lo tanto, cualquier formulario que tenga FormBase en su jerarquía debe implementar algunos métodos:

     Para más información, visita la página oficial de Drupal Form Api