Nuevo en Symfony 4.1: mejoras relacionadas con los errores
FlattenException
ya no enmascara los errores
Symfony decora los errores de la aplicación con la clase FatalThrowableError
.
Esto hace que el auténtico error no se muestre en las páginas de excepción, como
en el siguiente ejemplo, donde se ve un error de tipo FatalThrowableError
en
vez del verdadero error de tipo DivisionByZeroError
.
En Symfony 4.1, la clase FlattenException
obtiene el verdadero error a partir
del objeto FatalThrowableError
, por lo que siempre verás el auténtico error
que se ha producido:
Esta funcionalidad fue contribuida por Alexander M. Turek en el pull request #26028.
Nuevas clases para excepciones
En Symfony 4.1 hemos añadido la clase ProcessSignaledException
en el
componente Process para poder procesar de manera precisa los procesos con
señales. Además, en el componente HttpFoundation hemos añadido nuevas
clases para procesar con más detalle las excepciones relacionadas con la subida
de archivos (antes olo había una clase FileException
para todos los errores):
use Symfony\Component\HttpFoundation\File\Exception\CannotWriteFileException; use Symfony\Component\HttpFoundation\File\Exception\ExtensionFileException; use Symfony\Component\HttpFoundation\File\Exception\FormSizeFileException; use Symfony\Component\HttpFoundation\File\Exception\IniSizeFileException; use Symfony\Component\HttpFoundation\File\Exception\NoFileException; use Symfony\Component\HttpFoundation\File\Exception\NoTmpDirFileException; use Symfony\Component\HttpFoundation\File\Exception\PartialFileException;
Además, como a partir de PHP 7.1 ya puedes procesar varias excepciones a la vez, tu código puede hacer cosas como estas:
try { // ... } catch (FormSizeFileException | IniSizeFileException $e) { // ... }
Esta funcionalidad fue contribuida por Sullivan SENECHAL y Florent Mata en los pull requests #25775 y #26475.
Mejorado el diseño de las páginas de excepción
Las páginas de excepción se han mejorado en Symfony 4.1 para mostrar menos
información. En concreto, el código que se encuentra en la carpeta vendor/
ahora se muestra mucho más compacto (en una sola línea) y no se muestran sus
argumentos:
Esta funcionalidad fue contribuida por Javier Eguiluz en el pull request #26671.
Fuente: New in Symfony 4.1: Exception improvements
Comentarios
Proyectos Symfony destacados
La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.