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
Proyectos Symfony destacados
La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.