ErrorClass Clase que te permite generar errores

Iniciado por alexander1712, Octubre 09, 2013, 03:27:18 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Octubre 09, 2013, 03:27:18 PM Ultima modificación: Octubre 09, 2013, 08:05:44 PM por alexmanycol
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. (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login), abajo de todo el código hay un ejemplo sencillo de su funcionamiento

Código: php
<?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( NULL, 1024, 512, 256 );
    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!