Depuración y manejo de errores con Laravel

Ignition incluye una serie de soluciones a problemas comunes por defecto. Sin embargo, también es posible crear soluciones nuevas y personalizadas y esto es lo que aprenderás en este video-tutorial.

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Hay dos formas de proveer soluciones a un problema a través de una simple descripción básica o una solución auto-ejecutable.

Ejemplo de excepción con solución simple

Si estás arrojando una excepción personalizada puedes hacer que tu clase de excepción implemente la interfaz común Facade\IgnitionContracts\ProvidesSolution y retorne a través del método requerido getSolutions una posible solución al problema:

Podemos ver nuestra solución cuando se lance la excepción:

Ejemplo de solución auto-ejecutable

Una solución auto-ejecutable no es más que una clase que implementa la interfaz RunnableSolution. Esta interfaz nos provee de una «Plantilla» (la idea es similar a cómo funciona el Patrón Template Method) y solo tenemos que escribir el código de los diferentes métodos. La mayoría de ellos solo retornan cadenas e información:

La «acción» como tal se produce en el método run que es el método que será llamado para ejecutar la solución. Por otro lado, el método getRunParameters nos permite pasar información desde la petición original que falló (en nuestro caso donde lanzamosMyCustomException) a la petición nueva donde se ejecutará la solución (que podemos observar en la pestaña Network de Ignition).

En este código como solución solo estoy comentando la línea donde he lanzado la excepción, para ello obtengo el archivo y reemplazo su contenido usando los métodos del Facade File.

Es posible que encuentres algún problema si el sistema de archivos no puede reemplazar el contenido de web.php. Agrega los permisos necesarios para ello. Ten en cuenta que esto es solo un sencillo ejemplo ilustrativo.

Únete a la discusión

Regístrate en Styde y obtén una invitación a nuestro Slack.

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Editar y ejecutar código de Laravel desde el navegador con las extensiones de Ignition Lección siguiente Crear proveedores de solución personalizados con Ignition y Laravel