Nuevo en Symfony 3.4: el comando debug:form

Una de las mejores características de Symfony es la gran cantidad de herramientas que proporciona para depurar aplicaciones. En Symfony 3.4 hemos decidido mejorarlas añadiendo una herramienta más: el comando debug:form para depurar formularios.

Si ejecutas ese comando sin argumentos, se muestran todos los "form types" que incluye Symfony, todos los que define tu aplicación, las extensiones de formulario y los "guessers". Por ejemplo, al ejecutarlo en la aplicación Symfony Demo:

$ ./bin/console debug:form
 
Built-in form types (Symfony\Component\Form\Extension\Core\Type)
----------------------------------------------------------------
 BirthdayType, ButtonType, CheckboxType, ChoiceType, CollectionType
 ColorType, CountryType, CurrencyType, DateIntervalType, DateTimeType
 ...
 TextareaType, TimeType, TimezoneType, UrlType
 
Service form types
------------------
 * App\Form\CommentType
 * App\Form\PostType
 * App\Form\Type\DateTimePickerType
 * App\Form\Type\TagsInputType
 * Symfony\Bridge\Doctrine\Form\Type\EntityType
 
Type extensions
---------------
 * Symfony\Component\Form\Extension\Csrf\Type\FormTypeCsrfExtension
 * Symfony\Component\Form\Extension\DataCollector\Type\DataCollectorTypeExtension
 * ...
 * Symfony\Component\Form\Extension\Validator\Type\UploadValidatorExtension
 
Type guessers
-------------
 * Symfony\Bridge\Doctrine\Form\DoctrineOrmTypeGuesser
 * Symfony\Component\Form\Extension\Validator\ValidatorTypeGuesser

Si pasas un "form type" como argumento, se muestran todas sus opciones, incluyendo las de las clases de las que hereda y las de sus extensiones:

$ ./bin/console debug:form 'App\Form\PostType'
 
# si la clase del "form type" no es ambigua, puedes usarla directamente
# en vez de tener que escribir su namespace completo:
# ./bin/console debug:form PostType
 
App\Form\PostType (Block prefix: "post")
========================================
 
 -------------------- ------------------------- ----------------------------
  Overridden options   Parent options            Extension options
 -------------------- ------------------------- ----------------------------
  FormType             FormType                  FormTypeValidatorExtension
 -------------------- ------------------------- ----------------------------
  data_class           action                    allow_extra_fields
                       attr                      constraints
                       auto_initialize           error_mapping
                       block_name                extra_fields_message
                       by_reference              invalid_message
                       compound                  invalid_message_parameters
                       data                      validation_groups
                       disabled
                       empty_data                FormTypeCsrfExtension
                       error_bubbling           ----------------------------
                       inherit_data              csrf_field_name
                       label                     csrf_message
                       label_attr                csrf_protection
                       label_format              csrf_token_id
                       mapped                    csrf_token_manager
                       method
                       post_max_size_message
                       property_path
                       required
                       translation_domain
                       trim
                       upload_max_size_message
 -------------------- ------------------------- ----------------------------
 
Parent types
------------
 
 * Symfony\Component\Form\Extension\Core\Type\FormType
 
Type extensions
---------------
 
 * Symfony\Component\Form\Extension\HttpFoundation\Type\FormTypeHttpFoundationExtension
 * Symfony\Component\Form\Extension\Validator\Type\FormTypeValidatorExtension
 * Symfony\Component\Form\Extension\Validator\Type\UploadValidatorExtension
 * Symfony\Component\Form\Extension\Csrf\Type\FormTypeCsrfExtension
 * Symfony\Component\Form\Extension\DataCollector\Type\DataCollectorTypeExtension

Por último, si pasas tanto un "form type" como el nombre de una opción, el comando muestra la definición completa de esa opción:

$ ./bin/console debug:form 'App\Form\PostType' label_attr
 
App\Form\PostType (label_attr)
==============================
 
 ---------------- -----------
  Required         false
 ---------------- -----------
  Default          []
 ---------------- -----------
  Allowed types    ["array"]
 ---------------- -----------
  Allowed values   -
 ---------------- -----------
  Normalizer       -
 ---------------- -----------

Como sucede con muchos otros comandos de Symfony, toda esta información también está disponible en formato JSON añadiendo la opción --format=json al ejecutar el comando.

Esta funcionalidad fue contribuida por Yonel Ceruto y Maxime Steinhausser en los pull requests #23694, #24185 y #24208.

Fuente: New in Symfony 3.4: debug:form command

Comentarios

Compartir en

Publicada el

17 de octubre de 2017

Etiquetas

Proyectos Symfony destacados

La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más

Descargas totales de Symfony

1.069.955.393

Ver descargas en tiempo real

Síguenos en @symfony_es para acceder a las últimas noticias.