Cómo depurar errores en PHP de forma local


Cuando estamos trabajando en PHP es muy común saltarnos un punto y coma al final de una línea de código. De repente salta un error en nuestro navegador y esto hace sentir una sensación de que lo hemos destrozado todo. ¡Pero tranquilo, solo fue un punto y coma!

Por eso es muy importante saber los tipos de errores que saltan de PHP y saber hacer lectura de ellos.

Los errores en PHP se clasifican en tres grandes grupos: Fatal error, Warning y Parse.


FATAL ERROR:

Este tipo de errores aborta la ejecución del programa e interrumpe su completo funcionamiento. Ocurre, por ejemplo, cuando intentas ejecutar una función y no existe en tu código o intentas iniciar un objeto de una clase que aún no has declarado:

class ClaseUno{
	public function FuncionUno(){}
}

$variable = new ClaseDos(); // Esta Clase no está declarada
$variable -> FuncionUno();

Este sería el error que aparecería:

Fatal error: Uncaught Error: Class "ClaseDos" not found in ...index.php:12 Stack trace: #0 {main} thrown in ...index.php on line ...


WARNING:

Los errores de advertencia no abortan la ejecución del programa, esto quiere decir que el programa sigue su curso pero puede no funcionar correctamente o ser la causa de que más adelante se produzcan errores más graves. 

Ocurre por ejemplo,  cuando usamos variables que no se hayan declarado anteriormente:

$variable1 = "hola soy la variable 1";

echo $variable2;

Este sería el error que aparecería:

Warning: Undefined variable $variable2 in ...index.php on line ...


PARSE:

Los errores de tipo Análisis Gramatical, como su nombre lo indica, aparecen cuando ocurre un error de sintaxis. Y PHP lo toma como un error igual de grave como el Fatal Error ya que aborta la ejecución del programa.

El error más común es cuando olvidamos colocar un punto y coma al final  de una línea de código, ya que el punto y coma es estricto en PHP:

$array = [0,1,2,3] // Aquí faltó poner el punto y coma

Este sería el error que aparecería:

Parse error: syntax error, unexpected end of file in ...index.php on line ...


Ahora que ya conocemos los principales errores de PHP, lo que ocurre normalmente en nuestro servidor local es que los errores se muestran en el navegador, y al mismo tiempo los esté acumulando en un archivo llamado php_error_log


EL ARCHIVO PHP_ERROR_LOG

Este archivo acumula todos los errores que ocurren en tu servidor local y si no se depura periódicamente puede generar un peso innecesario en tu computadora.

Para saber dónde está ubicado este archivo, podemos entrar a nuestro servidor local a través de la ruta: http://localhost/dashboard/phpinfo.php y con CTRL + F buscamos la palabra php_error_log



Recomendaciones para depurar errores en PHP

Finalmente te daré dos recomendaciones:

1. Evita usar el archivo php_error_log de XAMPP y crea tu propio archivo php_error_log por aplicación o programa que desarrolles en tu servidor local.

¿Cómo evitamos usar el archivo php_error_log de XAMPP?

Ingresa a tu archivo php.ini y busca la línea que contenga logs\php y luego agregar un punto y coma al inicio de esa línea:

Recuerda que después de cualquier cambio hecho al archivo php.ini debes detener e inicializar nuevamente el servidor.

¿Cómo creamos nuestro propio archivo php_error_log por aplicación o programa?

En el index.php de tu aplicación o programa agrega las siguientes líneas de código:

ini_set('display_errors', 1); // coloca 0 si no deseas que aparezcan los errores también en el navegador
ini_set("log_errors", 1); // con esta línea estamos diciendo que queremos crear un nuevo archivo de errores
ini_set("error_log",  "C:/xampp/htdocs/tu_aplicacion/php_error_log"); // con esta línea le decimos a PHP donde queremos que se guarde ese archivo, lo recomendado es que sea al lado del archivo index.php

Si quieres aprender más de PHP te recomiendo este curso: El curso más completo de PHP en español.


Si te gustó este artículo, seguro te gustará más verlo en video, haz clic en el botón de reproducción para ver toda esta explicación en nuestro canal de YouTube:


Más artículos relacionados

Comparte este artículo

Usamos cookies para brindar nuestros servicios. Al utilizar este sitio web, acepta esto. Conoce nuestras políticas de Cookies