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. (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), 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!