labo86/exception_with_data

Una clase Exception que soporta un array como data

3.0.0 2020-10-08 11:41 UTC

This package is auto-updated.

Last update: 2024-03-24 23:02:30 UTC


README

Una clase Exception que soporta un array como data

Latest Stable Version Total Downloads License Build Status codecov.io Code Coverage Code Climate Hecho en Chile

Uso

use \labo86\exception_with_data\ExceptionWithData;

try {
    throw new ExceptionWithData(
        "division by zero",
        [
          "dividend" => 100,
          "divisor" => 0
        ]);

} catch ( ExceptionWithData $exception ) {
    print_r($exception->getData());
}

Fundamento

Esta es una biblioteca que solucionar el problema de agregar datos a una excepción. No soy partidario de hacer una biblioteca para una funcionalidad tan simple pero prácticamente todos mis proyectos necesitan de esta funcionalidad.

Además si este código estuviera replicado de todas forma necesitaría tener múltiples capturas:

try {
    //something
} catch ( \lib_1\ExceptionWithData $e ) {
    //handle 1
} catch ( \lib_2\ExceptionWithData $e ) {
    //handle 2
} catch ( \lib_3\ExceptionWithData $e ) {
    //handle 3     
}

Elegí un nombre extraño para la clase para demostrar que en realidad quiero que esto se cambie de alguna forma. Ojalá se agregue un nuevo tipo de excepción en el núcleo de PHP.

Ahora además se consideran nuevos manejos y utilidades como:

Instalación

composer require labo86/exception_with_data

Información de mi máquina de desarrollo

Salida de system_info.sh

+ hostnamectl
+ grep -e 'Operating System:' -e Kernel:
  Operating System: Ubuntu 20.04 LTS
            Kernel: Linux 5.4.0-33-generic
+ php --version
PHP 7.4.3 (cli) (built: May 26 2020 12:24:22) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
    with Xdebug v2.9.2, Copyright (c) 2002-2020, by Derick Rethans

Notas

  • El código se apega a las recomendaciones de estilo de PSR-1.
  • Este proyecto esta pensado para ser trabajado usando PhpStorm.
  • Se usa PHPUnit para las pruebas unitarias de código.
  • Para la documentación se utiliza el estilo de phpDocumentor.