Underc0de

Programación Web => Back-end => Mensaje iniciado por: Alex en Octubre 09, 2013, 03:27:18 PM

Título: ErrorClass Clase que te permite generar errores
Publicado por: Alex en Octubre 09, 2013, 03:27:18 PM
Hola, vi la función trigger y me interesé, por lo que hice una sencilla clase que permite disparar errores.

requiere de mi trait Property. (aquí lo tienen (http://underc0de.org/foro/php/property-en-php/)), abajo de todo el código hay un ejemplo sencillo de su funcionamiento

Código (php) [Seleccionar]
<?php

include('Property.php');

// esta clase requiere Property!

// Interface

interface IErrorClass
{

    
// arrojar error
    
public function error_dispatch();
    
    
// setters y getters
    
public function get_message();
    public function 
set_message($value);
    public function 
get_error_level();
    public function 
set_error_level($value);
    

}

class 
ErrorClass implements IErrorClass
{
    use 
Property;

    private 
$message null;
    private 
$errors = array( NULL1024512256 );
    private 
$error_level 1;
    
    public function 
__construct($message null$error_level 1)
    {
        
$this->error_level_control($error_level);
        
$this->message_control($message);
        
$this->message $message;
        
$this->error_level $error_level;
    }
    
    private function 
error_level_control($lvl)
    {
        if(!isset(
$this->errors[$lvl]))
        {
          
$this->error_level 3;
          
$this->message 'Invalid error type specified';
          
$this->error_dispatch();
        }
        return 
true;
    }
    
    private function 
message_control(&$message)
    {
        
$message htmlentities($message);
        
$message utf8_encode($message);
        return 
true;
    }
    
    public function 
error_dispatch()
    {
        
trigger_error($this->message$this->errors[$this->error_level]);
    }
    
    public function 
get_message()
    {
        return 
$this->message;
    }
    
    public function 
set_message($value)
    {
        
$this->message_control($value);
        
$this->message $value;
    }
    
    public function 
get_error_level()
    {
        return 
$this->error_level;
    }
    
    public function 
set_error_level($value)
    {
        
$this->error_level_control($value);
        
$this->error_level $value;
    }

}

// ejemplo de uso

$error = new ErrorClass();

$error->error_level 1// solo se pueden asignar valores de 1 a 3, cuanto mayor es el numero el error va a ser de mayor tipo (E_NOTICE = 1, E_WARNING = 2, E_FATAL = 3)
// si se asigna un valor no permitido tirará FATAL ERROR

$error->message 'Probando errores';

$error->error_dispatch();


saludos!