Saltar al contenido

¿Cómo depurar errores “Symfony Component Debug Exception FatalErrorException” en PHP (Laravel)?

Solución:

Después de leer su conversación de chat, vi que estaba usando este .env configuración:

CACHE_DRIVER=file 
SESSION_DRIVER=file 

Creo que este es el problema … Me explico un poco mejor.

Cuando usa el file controlador para el caché o la sesión, Laravel creará toneladas de archivos que almacenan los datos de la sesión de los usuarios o los datos del caché de la aplicación …

Si su comercio electrónico está creciendo y generando mucho tráfico, entonces es posible que el rendimiento se esté ralentizando debido a la gran cantidad de archivos que debe escanear el marco.

Creo que pueden ser dos posibles soluciones:

  • Su entorno de producción debe actualizarse (no sé las especificaciones de su servidor de producción o si tiene suficientes recursos).
  • El controlador de archivos se está volviendo demasiado lento para los requisitos de su aplicación.

Usualmente uso redis como controlador de sesión y caché, es más rápido y con una buena estrategia para el “almacenamiento en caché inteligente” es una gran herramienta.

Creo que deberías intentar usarlo también si es posible. Memcached también puede ser una buena solución.

Si no está seguro del motivo de la excepción, puede manejarlo de dos maneras

1 aumentar el tiempo de espera de la solicitud ini_set (‘max_execution_time’, 60); // 60 segundos = 1 minuto

2 envuelve tu código en try catch

try{
  //logic goes here
}catch(Excaption $e){
 Log::error($e->getMessage().' '. $e->getFile().' '. $e->getLine());
 return back()->with('error',$e->getMessage() );
}

¿Puede registrar una función de apagado? La función de apagado se llama incluso cuando se agota el tiempo de espera. Con él puede imprimir o guardar lo que desee en un archivo de registro. No estoy seguro de si hay una mejor manera de obtener el backtrace en laravel, pero así es como probablemente lo haría en php puro (llamando a debug_backtrace).

<?php

function timedOut() {
    //save to a log file instead of printing
    var_dump(debug_backtrace());
}

register_shutdown_function("timedOut");

http://php.net/manual/en/function.register-shutdown-function.php

http://php.net/manual/en/function.debug-backtrace.php

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *