Registrar errores en PHP
-
Utilice
ini_set()
para habilitar el registro de errores de PHP -
Use
error_log()
para registrar errores en PHP -
Use
error_reporting()
para registrar errores en PHP en el navegador
Los errores de registro son esenciales cuando desarrollamos cualquier aplicación, incluidas las aplicaciones PHP. Por lo tanto, es importante saber cómo registrar errores en PHP y no depender de print_r()
y var_dump()
para saber cuándo algo salió mal.
Este artículo discutirá todas las funciones que necesitamos usar para habilitar y trabajar con el registro de errores en PHP.
Utilice ini_set()
para habilitar el registro de errores de PHP
Antes que nada, abra el archivo php.ini
y verifique si display_errors
está configurado en On
, como en la imagen a continuación.
Además, dentro del archivo php.ini
, debe verificar las condiciones de error_reporting
. Si su versión es PHP 8.1, es posible que vea error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
en su archivo php.ini
.
Sin embargo, para estar seguro, agregue las siguientes líneas.
error_reporting = E_ALL & ~E_NOTICE
error_reporting = E_ALL & ~E_NOTICE | E_STRICT
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ER… _ERROR
error_reporting = E_ALL & ~E_NOTICE
Para permitirle registrar los errores correctamente, debe utilizar la función ini_set()
para habilitar el registro de errores. Esta función nos permite establecer el valor de una opción de configuración, como las opciones de registro de errores.
Podemos configurar el registro de errores de PHP dentro de nuestra base de código con una opción y un valor. El fragmento de código a continuación nos muestra las opciones y los valores necesarios.
ini_set("log_errors", 1);
ini_set("error_log", "/tmp/php-error.log");
Si necesitamos registrar errores dentro de nuestros scripts PHP, necesitaremos incluirlos dentro de ese script. Para mantener el principio DRY
, debemos crear un archivo PHP que contenga el código anterior y requerirlo en cada PHP que necesitemos.
require_once('error.php');
Use error_log()
para registrar errores en PHP
Ahora que hemos configurado nuestro entorno de PHP para habilitar el registro de errores de PHP, podemos usar la importante función error_log()
.
Con esta función, reducimos el uso de las funciones print_r()
y var_dump()
para la depuración (especialmente en el entorno de producción) y creamos plantillas de error especiales para informarnos que algo no funciona correctamente.
Para mostrar cómo funciona error_log()
, podemos usar la función para decirnos que ha fallado una operación de entrada de archivo de lectura. En el fragmento de código, leemos la entrada de PHP usando la función file_get_contents
, y si $data
está vacío (lo que establecerá true
en una condición NOT
), el Ningún archivo leído
. se registrará la declaración de error.
$data = file_get_contents('php://input');
if (!$data) {
error_log("No file read. Check input conditions or values.");
}
La salida del código, si no hay entrada para la función file_get_contents()
, se encuentra a continuación.
No file read. Check input conditions or values.
Como puede ver, la función error_log()
toma un argumento mensaje
. Aparte de ese argumento, toma un argumento message_type
, destination
y additional_headers
.
Diferentes tipos de registro definen el valor entero que analizará en la función error_log
; puede consultar la documentación de PHP para obtener más detalles al respecto.
Por ejemplo, si desea enviar el mensaje de error al registrador del sistema PHP, utilice 0
como tipo de mensaje.
Además, puede guardar en un destino de archivo usando el tipo de mensaje 3
, como en el fragmento de código a continuación.
error_log("No file read. Check input conditions or values.", 3, "/my-errors.log");
Use error_reporting()
para registrar errores en PHP en el navegador
Además de la función ini_set()
, podemos establecer qué errores de PHP se informan. La función error_reporting()
nos ayuda con eso.
Recuerde que el archivo PHP de error que creamos debe ser requerido por cada archivo PHP que lo necesite; podemos agregar esta función y sus parámetros allí.
-
Para desactivar todos los informes de errores dentro de su espacio de código PHP.
error_reporting(0);
-
Para informar errores de ejecución simples (errores de tiempo de ejecución fatales, advertencias de tiempo de ejecución y errores de análisis en tiempo de compilación).
error_reporting(E_ERROR | E_WARNING | E_PARSE);
-
Para informar variables no inicializadas o detectar errores ortográficos en nombres de variables (avisos de tiempo de ejecución).
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
-
Para informar todos los errores, excepto los avisos de tiempo de ejecución.
error_reporting(E_ALL & ~E_NOTICE);
-
Para reportar todo tipo de errores de PHP.
error_reporting(E_ALL); error_reporting(-1); ini_set('error_reporting', E_ALL);
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn