Está en la página 1de 14

MATERIA: PROGRAMACIÓN WEB EN

FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

Temas: Investigar el manejo de excepciones en LARAVEL


Como explica en el sitio de code.tutsplus.com [1] Laravel viene con un manejador
de excepciones integrado que te permite reportar y generar excepciones de manera
sencilla y amigable.
Vamos a explorar los ajustes por defecto proporcionados por el manejador de
excepciones. De hecho, recorreremos la clase Handler por defecto en primer lugar
para entender cómo maneja excepciones Laravel.
Vamos a continuar y ver cómo podrías crear un manejador de excepciones
personalizado que te permita atrapar excepciones personalizadas.
Utiliza excepciones cuando tu sistema se enfrenta con circunstancias excepcionales
que impiden que el sistema la pueda asumir. Utilizamos las excepciones solamente
cuando el sistema no es capaz de determinar lo que ha sucedido. Martin Fowler
cree que "Si un fallo es el comportamiento esperado, entonces no deberías usar
excepciones". Esto significa que debes utilizar excepciones donde no eres capaz
de determinar el error. Las excepciones sólo deberían utilizarse en circunstancias
excepcionales.
Nota: Las excepciones no son buenas para el manejo de las operaciones lógicas.
Para un sistema como validación entradas hechas por el usuario, utilizar
excepciones estaría mal. En primer lugar, se determinará el texto de entrada, y en
una aplicación como esta debemos reportar varios errores en lugar de un solo error.
Creo en la eliminación del uso de excepciones en cualquier circunstancia donde
podríamos esperar errores de validación.
Capturar una excepción es muy importante, porque si no capturas una excepción el
sistema devolverá un error. La operación de captura debe ser lo más cerca del punto
de falla como sea posible.
¿Cuáles son las excepciones en Laravel?
Laravel utiliza exception Handler (controlador de excepción), que es una clase en
App\Exceptions\Handler.php. Esta clase contiene dos métodos principales (el
método renderHttpException, que se utiliza para todas las excepciones de HTTP,
como 404s y 503s, está en la clase padre de controlador). El primero es report
(reporte), que se utiliza para registrar las excepciones o enviarlos a un servicio
externo.

Pagina 1 de 14
MATERIA: PROGRAMACIÓN WEB EN
FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

Temas: Investigar el manejo de excepciones en LARAVEL


Según DocumentacionLaravel.com [2] Cuando comienzas un nuevo proyecto de
Laravel, el manejo de excepciones y errores ya está configurado para ti. La clase
App\Exceptions\Handler es donde todas las excepciones disparadas por tu
aplicación son registradas y después renderizadas de vuelta al usuario.
Revisaremos más profundamente dentro de esta clase a través de esta
documentación.

Configuración

La opción debug en tu archivo de configuración config/app.php determina cuanta


información sobre un error se muestra realmente al usuario. Por defecto, esta opción
es establecida para respetar el valor de la variable de entorno APP_DEBUG, la cual
es almacenada en tu archivo.

Para desarrollo local, deberías establecer la variable de entorno a true. En tu


entorno de producción, este valor debería estar siempre false. Si el valor es
establecido a true en producción, te arriesgas a exponer valores de configuración
sensitivos a los usuarios finales de tu aplicación.

Manejador de excepciones

Método report

Todas las excepciones son manejadas por la clase App\Exceptions\Handler. Esta


clase contiene dos métodos: report y render. Examinaremos cada uno de estos
métodos en detalle. El método report se usa para registrar excepciones o enviarlas
a un servicio externo como Flare, Bugsnag o Sentry. De forma predeterminada, el
método report pasa la excepción a la clase base donde la excepción es registrada.
Sin embargo, eres libre de registrar excepciones en la forma que desees.

Temas: Investigar el manejo de excepciones en LARAVEL

Como encontramos en el sitio laraveles.com [3] poder ejecutar una excepcion, pero
aqui hay algo distinto. Quiero que se ejecute lo que dado el caso que caiga en la
excepcion , se ejecute lo que yo programo dentro del bloque del catch.

Pagina 2 de 14
MATERIA: PROGRAMACIÓN WEB EN
FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

Pero he estado viendo lo que hay en el handler del proyecto y la excepcion


'Exception' esta definida como sigue:

Pagina 3 de 14
MATERIA: PROGRAMACIÓN WEB EN
FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

Esta definido que solamente retorne un cero, hasta donde entiendo esto no deberia
afectarme. Pero al construir el try&catch en el controlador, ahí si agrego una linea
badResponse que corresponde a una mala respuesta del servidor.

Temas: Investigar el manejo de excepciones en LARAVEL


Según stackoverflow.com [4] Las excepciones producidas en Laravel pueden ser de
2 tipos: las generadas producto de un error en el uso del framework cuando estamos
desarrollando o las generadas por el curso normal de la aplicación como por ejemplo
la excepción como resultado de una validación de datos fallida (cuando por ejemplo
usas el método validate).

Si NO estamos esperando una excepción, es decir, nos aparece un error inesperado


al ejecutar la prueba, podemos develar cuál es exactamente el error que está
ocurriendo ya sea mirando los logs o directamente en la consola desactivando el
manejo de excepciones de Laravel, añadiendo la linea al método:

$this->withoutExceptionHandling();

En cambio, si estamos esperando que la aplicación arroje una excepción como


función normal que estamos probando entonces podemos forzar a Laravel para que
mantenga activo el manejo de excepciones de Laravel usando en el método de la
prueba:

Pagina 4 de 14
MATERIA: PROGRAMACIÓN WEB EN
FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

$this->withExceptionHandling();

Laravel el manejo de excepciones está activo y puedes llamar al método


withoutExceptionHandling cuando necesites desactivarlo. También puedes usar
handleExceptions($exceptions) para especificarle al framework qué excepciones en
particular quieres que maneje (y desactivar el manejo de excepciones para el resto
de los casos) o handleValidationExceptions para que el framework maneje solo
excepciones producidas por validaciones fallidas.

Temas: Investigar el manejo de excepciones en LARAVEL


Encontré en el sitio de disecor.com [5] Las excepciones se pueden manejar a través
de una configuración básica que este framework ofrece o mediante una guía de
excepciones personalizada. Aquí vamos a mostrarte las dos:

La clase Handler

Para trabajar con esta clase, debes de abrir el archivo que se encuentra en la
siguiente ruta: app/Exceptions/Handler.php. A través del método “report”
conseguirás registrar los errores dentro del archivo de bitácora, mientras que la
opción “dontreport” lista todas las clases de excepciones que no deben ser
registradas en el archivo. Por su parte, el método “render” se emplea para generar
errores en la pantalla. Además, permite personalizar una respuesta según las
diferentes excepciones. Finalmente, el método “unauthenticated” permite establecer
lo que se mostrará a los usuarios que no estén autorizados para acceder a
determinada página.

La clase personalizada

Se trata de la “CustomException”, una excepción que debe extender a la clase


principal. Para ello, crea el siguiente archivo: app/Exceptions/CustomException.php.
De esta forma, puedes crear páginas de errores personalizadas para los diferentes
tipos de excepciones. Necesitarás crear un archivo de vista asociado dentro de
resources/views/errors/custom.blade.php. Además, necesitas hacer cambios en el
método de generación para que tu clase personalizada pueda ser invocada.

Con esta información, podrás realizar un manejo de excepciones en Laravel a través


de la configuración básica provista por el propio framework o de una excepción

Pagina 5 de 14
MATERIA: PROGRAMACIÓN WEB EN
FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

personalizada. Busca la forma más beneficiosa para ti y aplícala para sacar el


máximo partido a esta potente herramienta.

CONCLUSIÓN: Con la investigación me di cuenta la importación de las


excepciones, ya que nos ayuda a solucionar errores que pueden surgir en nuestros
proyectos ya que hace el lanzamiento y captura de excepciones como bien ya
expliqué en la investigación que serían con las funciones de catch y finally, las
excepciones nos ayudan a más que nada esquivar los errores que pueda llegar a
presentar nuestro proyecto y así seguir con dicha función a realizar.

Tema: Para que sirve with en una redirección


En el sitio Laravel.com [6] menciona que las redirecciones se suelen utilizar tras
obtener algún error en la validación de un formulario o tras procesar algunos
parámetros de entrada. En este caso, para que al mostrar el formulario con los
errores producidos podamos añadir los datos que había escrito el usuario
tendremos que volver a enviar los valores enviados con la petición usando el método
withInput():
return redirect('form')->withInput();
O para reenviar los datos de entrada excepto algunos:
return redirect('form')->withInput($request->except('password'));
Este método también lo podemos usar con la función back o con la función action:
return back()->withInput();
return redirect()->action('HomeController@index')->withInput();

Tema: Para que sirve with en una redirección

Para la página Larashout.com [7] el método de redirección de Laravel tiene dos


métodos de chaning with y withInput.
• Método with(): return redirect () -> back () -> with ( 'éxito' , 'Publicación
guardada con éxito' ); El ejemplo anterior redirigirá al usuario a la ubicación
anterior y agregará un éxito clave con valor a los datos flash de la sesión.
Puede recuperar la clave success en el controlador o en la vista de la hoja
como se muestra a continuación: success( 'éxito' );

Otra solución clara será usar una matriz para agregar toda la información que desea
enviar con la redirección, luego pasar esa matriz al método with():

$ response = [

Pagina 6 de 14
MATERIA: PROGRAMACIÓN WEB EN
FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

'success' => 'Publicación guardada con éxito'. ,

'post_id' => $ post-> id,

]; return redirect () -> back () -> with ($ respuesta);

• Método withInput(): Este método no toma ningún parámetro y almacena los


valores del formulario en la sesión. Luego, en la vista de la hoja, puede usar
el old($key) método para obtener el valor enviado de una clave específica.

CONCLUSIÓN: Como conclusión al realizar la investigación de porque se usa with


en una redirección, es porque a una nueva URL y la actualización de los datos a la
sesión generalmente se realizan al mismo tiempo. Eso quiere decir que, para la
comodidad, puede crear una redirección y las crea mediante el método With.

Tema: Funcionalidad de CRUD

Crear y agregar una nueva.

Pagina 7 de 14
MATERIA: PROGRAMACIÓN WEB EN
FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

Pagina 8 de 14
MATERIA: PROGRAMACIÓN WEB EN
FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

También eliminarlas.

Pagina 9 de 14
MATERIA: PROGRAMACIÓN WEB EN
FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

O Editarlas.

Pagina 10 de 14
MATERIA: PROGRAMACIÓN WEB EN
FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

En este caso modificaremos

Pagina 11 de 14
MATERIA: PROGRAMACIÓN WEB EN
FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

Pagina 12 de 14
MATERIA: PROGRAMACIÓN WEB EN
FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

Pagina 13 de 14
MATERIA: PROGRAMACIÓN WEB EN
FRAMEWORK
GRUPO: S8B
EQUIPO: 7
TEMA (s): Investigar el manejo de
excepciones en LARAVEL
Para qué me sirve with en una
redirección
Alumno1 : (López Ruiz Rosa Ivette)

BIBLIOGRAFIA

[1] https://code.tutsplus.com/es/tutorials/exception-handling-in-laravel--cms-30210

[2] DocumentacionLaraveles.com

[3] Laraveles.com

[4] https://es.stackoverflow.com/questions/274953/excepciones-laravel

[5] https://disecor.com/5-ventajas-de-usar-laravel-para-tu-web/

[6] https://laravel.montogeek.com/4.1/responses#redirects

[7] https://www.larashout.com/deep-dive-into-laravel-redirect-method

Pagina 14 de 14

También podría gustarte