En este resumen voy a escribir sobre los el control y registro de los errores en PHP. PHP nos permite definir nuestras reglas para controlar los errores, crear errores personificados o como serán registrados/notificados.
Tipos de Errores:
Existen varios tipos de errores, por lo general se refieran a niveles de error en PHP.
Errores de Compilación:
- Errores detectados por el IDE mientras se compila el script.
- Errores que detienen la ejecución del script.
- Errores que representan fallas, pero se pueden manejar sin problemas.
- Errores recuperables que indican una falla en tiempo de ejecución. No detienen la ejecución del script.
- Indica un error de condición, pero que no es significante. No detiene la ejecución del script.
Configuración:
Existen varias opciones en la configuración de los errores y su registro, para ello tenemos el archivo php.ini que es la que se encargará de almacenar todas estas configuraciones.
Nota: Luego de cambiar algo del archivo php.ini es necesario reiniciar el apache para que los cambios surjan efecto, sino no se tomaran estos cambios.
| Nombre | Predeterminado | Descripción | Notas |
|---|---|---|---|
| error_reporting | NULL | Establece el nivel de notificaciones de errores que serán mostradas. | |
| display_errors | “1″ | Determina si los errores serán mostrados en pantalla o se ocultaran. | |
| display_startup_errors | “0″ | Determina si los errores de configuración de arranque PHP serán mostrados u ocultados. | |
| log_errors | “0″ | Determina si los mensajes de los errores deberán registrarse en el registro de log o en error_log. | |
| log_errors_max_len | “1024″ | Establece la longitud máxima del archivo en bytes. | 0 para no crear ninguna longitud máxima. |
| ignore_repeated_errors | “0″ | Determina si serán ignorados los mensajes repetidos. Deben ocurrir en la misma linea y en el mismo archivo. | |
| ignore_repeated_source | “0″ | Ignorara la linea o el archivo de los archivos repetidos, por lo tanto no se registraran los errores repetidos en todos los archivos que se ejecutaran. | |
| report_memleaks | “1″ | Mostrará un informe de las perdidas de memorias detectadas en el gestor de memoria Zend. | |
| track_errors | “0″ | Si esta activo el ultimo error sera guardado en la variable $phperrormsg. | |
| html_errors | “1″ | Determina si se mostraran los errores de etiqueta HTML en los mensajes de error. | |
| xmlrpc_errors | “0″ | Desactiva las notificaciones normales y muestra los errores en formato XMLRPC. | |
| xmlrpc_error_number | “0″ | Usado como el valor del elemento faultCode de XML-RPC. | |
| docref_root | “” | El nuevo formato de error contiene una referencia a la página describiendo el error o a la función que causa el error. | |
| docref_ext | “” | VER docref_root | |
| error_prepend_string | NULL | Ingresaremos un string que queremos que se imprima antes del un error. | |
| error_append_string | NULL | Ingresaremos un string que queremos que se imprima después del un error. | |
| error_log | NULL | Acá ingresaremos el nombre del archivo en el cual se registraran los errores por defecto. |
Constantes Predefinidas:
Un listado de las constantes predefinidas para los distintos tipos de errores, son muy útiles para su reporte, podemos definir esto en nuestro archivo PHP.
Ejemplo:
error_reporting=E_ALL & ~E_NOTICE
En este caso mostraremos todos los errores, salvo las NOTICE.
E_ERROR
- Errores fatales que detienen la ejecución del script.
E_WARNING
- Advertencias en tiempo de ejecución, no detienen la ejecución del script.
E_PARSE
- Errores de análisis en tiempo de ejecución.
E_NOTICE
- Avisos que se muestran en tiempo de ejecución. Indica algo que podría ser un error.
E_CORE_ERROR
- Errores fatales que ocurren en el arranque del core de PHP. Parecido a E_ERROR, salvo que son generados por el núcleo de PHP.
E_CORE_WARNING
- Advertencias que ocurren en el arranque del core de PHP. Parecido a E_WARNING, salvo que son generados por el núcleo de PHP.
E_COMPILE_ERROR
- Errores fatales en tiempo de compilación. Parecidos a E_ERROR, salvo que son generados por el Motor de Script Zend.
E_COMPILE_WARNING
- Advertencias en tiempo de compilación. Parecidos a E_WARNING, salvo que son generados por el Motor de Script Zend.
E_USER_ERROR
- Errores generados por el usuario, mediante el uso de la función trigger_error().
E_USER_WARNING
- Advertencias generadas por el usuario, mediante el uso de la función trigger_error() .
E_USER_NOTICE
- Mensajes de avisos generadas por el usuario, mediante el uso de la función trigger_error().
E_STRICT
- Habilítelo para que PHP sugiera cambios en su código, lo que asegurará la mejor interoperabilidad y compatibilidad con versiones posteriores de PHP de su código.
E_RECOVERABLE_ERROR
- Errores fatales que son recuperables.
E_DEPRECATED
- Avisos en tiempo de ejecución, que indicara el código que no funcionará en futuras versiones.
E_USER_DEPRECATED
- Avisos generados por el usuario, mediante el uso de la función trigger_error().
E_ALL
- Todos los errores y advertencias de PHP, excepto E_STRICT (Incluida en 5.4.0).
Se pueden combinar todos estos con los siguientes operadores ‘|’, ‘~’, ‘!’, ‘^’ y ‘&’.
Link Importante:
Listado de funciones para Manejo de errores | Link PHP.NET
Espero que les sea útil.

