Nadie sabe porque ocurre?. Os pongo el trozo de codigo que estoy probando para que os orienteis:
Código PHP:
class Portal{
var $gestor_errores_anterior;
function Portal(){
error_reporting(E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE);
// establecer el gestor de errores definido
$this->gestor_errores_anterior = set_error_handler("miGestorErrores");
}
/**
* Funcion para la gestion de errores
*
* @param int $num_err Numero de error
* @param string $cadena_err Texto de error
* @param string $archivo_err El nombre del archivo que dio el error
* @param int $linea_err El nº de linea que dio el error
*/
function miGestorErrores($num_err, $cadena_err, $archivo_err, $linea_err){
switch ($num_err) {
case E_USER_ERROR:
echo "<b>Mi ERROR</b> [$num_err] $cadena_err<br />\n";
echo " Error fatal en la linea $linea_err del archivo $archivo_err";
echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
echo "Abortando...<br />\n";
exit(1);
break;
case E_USER_WARNING:
echo "<b>Mi ADVERTENCIA</b> [$num_err] $cadena_err<br />\n";
break;
case E_USER_NOTICE:
echo "<b>Mi NOTICIA</b> [$num_err] $cadena_err<br />\n";
break;
default:
echo "Tipo de error desconocido: [$num_err] $cadena_err<br />\n";
break;
}
}
function getPaginaIndex(){
if($noticia==null){
//Esto siempre estra
trigger_error("No existe la noticia",E_USER_ERROR);
}
}
}
$portal=new Portal();
$portal->getPaginaIndex();
El caso es que nunca entra en la funcion "miGestorErrores".
Estas pruebas las he hecho con las funciones fuera de una clase y funciona perfectamente.
¿Alguien sabe porque?.
Gracias por la ayuda.