PHPackages                             furiosojack/lara-exception - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. furiosojack/lara-exception

AbandonedArchivedPhp[HTTP &amp; Networking](/categories/http)

furiosojack/lara-exception
==========================

Es un generador de excepciones, su fin es lanzar excepciones controladas al usuario con la posibilidad de generar log detallados al desarollador. El paquete es capaz de detectar una application/json de una peticion http por defecto. Este paquete entrega al usuario una vista en caso de ser http normal en donde se vera mensaje del error y un codigo de error, si la peticion es JSON el error sera devuelto en un resonse en formato JSON.

v1.0.2(7y ago)33001MITPHPPHP &gt;= 7

Since Jan 2Pushed 7y ago2 watchersCompare

[ Source](https://github.com/FuriosoJack/LaraException)[ Packagist](https://packagist.org/packages/furiosojack/lara-exception)[ Docs](https://github.com/FuriosoJack/LaraException)[ RSS](/packages/furiosojack-lara-exception/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (14)Used By (0)

[![Latest Stable Version](https://camo.githubusercontent.com/9f92d365b375d3d392778f5ca31c61d1b3b1d466740a3e1cafeedadc1bda4475/68747470733a2f2f706f7365722e707567782e6f72672f667572696f736f6a61636b2f6c6172612d657863657074696f6e2f762f737461626c65)](https://packagist.org/packages/furiosojack/lara-exception)[![Total Downloads](https://camo.githubusercontent.com/2f84f4d2b07a20d68e626701ff4b6c159dfa6e19085ba58e432f820d0933a09d/68747470733a2f2f706f7365722e707567782e6f72672f667572696f736f6a61636b2f6c6172612d657863657074696f6e2f646f776e6c6f616473)](https://packagist.org/packages/furiosojack/lara-exception)[![License](https://camo.githubusercontent.com/65b5fb89598bc3ee1a45137772bcc2cd17a3fd3cf5882281b069851fcc0bdd6e/68747470733a2f2f706f7365722e707567782e6f72672f667572696f736f6a61636b2f6c6172612d657863657074696f6e2f6c6963656e7365)](https://packagist.org/packages/furiosojack/lara-exception)

[![GitHub forks](https://camo.githubusercontent.com/ae02dead56c4e580f7f94feed3227be96efe719f7c8a0bf0788e970ee98cdb75/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f467572696f736f4a61636b2f4c617261457863657074696f6e2e737667)](https://github.com/FuriosoJack/LaraException/network)[![GitHub stars](https://camo.githubusercontent.com/61458212f9b612bbf0f5c8ad66980b64cea3ae3ac0e392f7a1724d1f9ea8fdda/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f467572696f736f4a61636b2f4c617261457863657074696f6e2e737667)](https://github.com/FuriosoJack/LaraException/stargazers)[![GitHub issues](https://camo.githubusercontent.com/5b7b753786f78150570adda7376f460a5151ae84556d13beec36f57977b342d8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f467572696f736f4a61636b2f4c617261457863657074696f6e2e737667)](https://github.com/FuriosoJack/LaraException/issues)

Español
=======

[](#español)

Licencia
--------

[](#licencia)

El codigo de licencia debe seguirse al pie de la letra, si usted utiliza esta libreria los derechos de autor deben estar incluidos en todas la copias.

Para mas informacion la puede encontra en el archivo LICENSE.txt.

Descripcion
-----------

[](#descripcion)

Es un generador de excepciones, su fin es lanzar excepciones controladas al usuario con la posibilidad de generar log detallados al desarollador.

El paquete es capaz de detectar una application/json de una peticion http por defecto.

Este paquete entrega al usuario una vista en caso de ser http normal en donde se vera mensaje del error y un codigo de error, si la peticion es JSON el error sera devuelto en un resonse en formato JSON.

Instalacion
-----------

[](#instalacion)

Ejecutar en la consola dentro en la raiz del proyecto el comando:

```
$ composer require furiosojack/lara-exception
```

o añadiendo directamente el el archivo `composer.json`

```
{
    "require": {
        "furiosojack/lara-exception": "^1.0.0"
    }
}
```

---

**Si usted tiene una version de Laravel `< 5.6` debe hacer lo siguiente** ⬇️ ⬇️

Luego en el archivo `config/app.php` incluir el siguiente service provider

```
'providers' => [
    FuriosoJack\LaraException\Providers\LaraExceptionServiceProvider::class,
];
```

y en el mismo archivo mas abajo la siguiente alianza

```
'aliases' => [
    'LaraException' => FuriosoJack\LaraException\Facades\LaraExceptionFacade::class,
  ],
```

**Si usted tiene una version de Laravel `< 5.6` debe hacer lo siguiente** ⬆️ ⬆️

---

En su archivo `app/Exceptions/Handler.php` es necesario incluir la clase `LaraExceptionManager` en ese archivo. Se puede hacer de la siguiente forma.

Iportar la clase

```
use FuriosoJack\LaraException\Exceptions\LaraExceptionManager;
```

ahora la clase `Handler.php` en lugar de extender de `ExceptionHandler` debe extender es de `LaraExceptionManager`
quedando algo como esto:

```

    namespace App\Exceptions;

    use Exception;
    use Illuminate\Auth\AuthenticationException;
    use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
    use FuriosoJack\LaraException\Exceptions\LaraExceptionManager;
    class Handler extends LaraExceptionManager
    {

```

Para finalizar debe pulicar la configuracion para ello en su consola debe ejecutar el comando.

```
 $ php artisan vendor:publish --tag=config.lara_exception
```

Metodos
-------

[](#metodos)

EL paquete provee unos parametros para ser la excepcion mas personalizada.

- **message(`string`)** - **Obligatorio** ‼️ Este metodo recibe string que seria el mensaje que se va a mostrar en la excepcion
    📐 *Siempre Visible*
- **debugCode(`int`)** - Este metodo recibe un entero correpondiente al codigo de error de la excepcion (Util cuando se parametriza los errores). Si no se especifica el codigo de error por defecto sera 0. 📐 *Siempre Visible*
- **details(`string`)** - Este metodo recibe un string que corresponse al de talle del error, generalmente creado para dar mas detalles al programador, por defecto no se le puestra al usuario pero si se muestra en el log. 📐 *Visible u Oculto*
- **withLog()** - Este metodo no recibe ningun parametros. Es usado para indicar que se quiere generar un log por dicha excepcion. Los logs quedan almacenados dependiendo de como se tenga configurado en el proyecto, un proyecto donde no se le haya modificado el lugar de los log estos se almacenaran en `storage/logs/laravel.log`, si se especifican detalles y errores siempre seran mostrado en el log.
- **showDetails()** - Este metodo permite que se muestre los detalles a la excepcion que se le muestra al usuario ya sea por HTTP norml o por JSON.
- **showErros()** - Muestra los errores en la respuesta si no se especifican errores se mostrara como null
- **errors(`array`)** Recibe un array de los errores que se quieran ajuntas mas al error principal, estos errores solo son mostrados al usuario si se usan en conjunto con `showErrors`
- **style(`string`)** Recibe un string, permite especificar un estilo visual que corresponde a el `key` que tiene que estar declarado en `config/LaraException`. [(Leer Seccion)](#estilo-visualview)
- **build(`int = 200`)** - *Este el utimo metodo que se debe llamar*. **Obligatorio** ‼️ Este es el encargado de que la excepcion se lance, al metodo se le puede especificar el codigo `http de respuesta (HTTP STATUS CODE)` por defecto si no se le especifica es `200`.

Ejemplos
--------

[](#ejemplos)

Lanza una excepcion con el mensaje indicado

```
\LaraException::message("hola mundo")->build();
```

Lanza una excepcion con un codigo de debugueo personalizado

```
\LaraException::message("hola mundo")->debugCode(15)->build();
```

Lanza un excepcion con detalles y con debug code perzonalizado

```
 \LaraException::message("hola mundo")
 ->debugCode(15)
 ->details("Ya dije hola mundo?")
 ->build();
```

Lanza un excepcion con detalles y con debug code perzonalizado y un log

```
 \LaraException::message("hola mundo")
 ->debugCode(15)
 ->details("Ya dije hola mundo?")
 ->withLog()
 ->build();
```

Lanza un excepcion con detalles y con debug code perzonalizado y un log y muestra los detalles al usuario

```
 \LaraException::message("hola mundo")
 ->debugCode(15)
 ->details("Ya dije hola mundo?")
 ->withLog()
 ->showDetails()
 ->showErrors()
 ->build();
```

En el siguiente ejemplo corresonde a la forma de enviar los errores en un array, solo funciona cuando la peticion tiene el header `Accept: applitacion/json`

```
 \LaraException::message("hola mundo")
 ->debugCode(15)
 ->details("Ya dije hola mundo?")
 ->withLog()
 ->errors([
   "juan" => "nombre invalido",
   "petro" => "nombre no existe"
 ])
 ->showDetails()
 ->build();
```

Se puede hace varias combinaciones de los metodos ya que estan encadenados pero obiamente teniendoen cuenta que el metodo `build()` siempre sea el ultimo.

Tambien puede usar el helper en lugar de usar la fachada como se mosotro anteriormente, para usar el helper puede usar los mismos metodos ya mostrados, por ejemplo para relizar

El primer parametro que recibira esta funcion sera el mensaje

```
 lara_exception("hola mundo")
 ->debugCode(15)
 ->details("Ya dije hola mundo?")
 ->withLog()
 ->errors([
   "juan" => "nombre invalido",
   "petro" => "nombre no existe"
 ])
 ->showDetails()
 ->build();
```

Salidas
-------

[](#salidas)

En el caso de que la peticion sea JSON la respuesta se veria algo como:

```
{
    "error": "hola mundo",
    "errors": {
        "juan": "nombre invalido",
        "petro": "nombre no existe"
    },
    "debugCode": 15,
    "details": "Ya dije hola mundo?",
    "success": false
}
```

Si es una peticion es http normal se le mostrara una vista

[![ver](https://camo.githubusercontent.com/885a3ffbd28e1c62033e08e24520be89bf07373642c9551d020ac269190ed860/68747470733a2f2f692e696d6775722e636f6d2f38517a646645652e706e67)](https://camo.githubusercontent.com/885a3ffbd28e1c62033e08e24520be89bf07373642c9551d020ac269190ed860/68747470733a2f2f692e696d6775722e636f6d2f38517a646645652e706e67)

Ejemplo de logs

[![ver](https://camo.githubusercontent.com/fc558cb551cb9b2d8b34a28a233714a45897116a10539ae7ed2d3510728650e5/68747470733a2f2f692e696d6775722e636f6d2f43434c567868452e706e67)](https://camo.githubusercontent.com/fc558cb551cb9b2d8b34a28a233714a45897116a10539ae7ed2d3510728650e5/68747470733a2f2f692e696d6775722e636f6d2f43434c567868452e706e67)

Excepciones Personalizadas
--------------------------

[](#excepciones-personalizadas)

### Estilo Visual(view)

[](#estilo-visualview)

***Solo es valido para excepciones que ocurran desde el navegador o que no sea una peticion JSON !!!!***

Si usted necesita que su proyecto o paquete pueda tener un estilo unico de excepciones tanto de vista o tenga unas caracteristicas especiales.

Es decir si por ejemplo usted esta programando un paquete para laravel y probablemente su paquete lo utilicen otras personas que tambien podrian estar utilizando LaraException y quiere que su paquete tenga un estilo visual(view) unico de excepciones. O si esta programando un proyecto en Laravel y necesita un estilo visual(view) diferente al por defecto.

Para hacer eso posible es necesario que en la configuracion que tiene que estar en el proyecto en `config/LaraException.php`debe crear un estilo con el siguiente formato:

```
  'blog' => [
      'view' => 'blog.user.exceptions',
      'redirect' => true
  ]
```

Tenemos a **blog** como `key` queriendo decir que este estilo se llama blog, ahora dentro de este array existen dos claves la `view` que represanta la vista que se mostrara cuando ocurra una excepcion.

La clave `redirect` representa si quiere que cuando ocurra una excepcion se redireccione a la url de LaraException (`/LaraException?errors=dsfdsfsdfsd`).

📝 **PD:**

*Yo recomiendo dejarlo en `true` ya que esto permite que cuando un usuario haga una solicitud de tipo **POST** y se lance una exception esta se redireccion para que el usuario no pueda dar F5 o recargar la pagina y evitar nuevamente un error.*

Como ya usted tiene un estilo definido puede usar el LaraException de la siguiente manera

```
lara_exception("mensaje")
->style('blog')
->details('detalles de la excepcion')
->build(500);
```

De esa forma cuando ocurra la excepcion la vista que se mostrara al usuario sera la que usted especifico en la configuracion.

#### Nueva vista

[](#nueva-vista)

*Si quire crear una nueva vista es por que tiene un nuevo estilo de excepcion, pero si lo que quiere es no especificar cada vez que lanza un LaraExcepcion el estilo pero con una vista diferente a la por defecto le recomendamos que lea la siguiente seccion.*

Para crear una vista compatible con LaraExeption la vista tiene que ser blade. Las variables a las que tendra acceso en su vista seran las siguientes:

- **$message**
- **$errors**
- **$debugCode**
- **$details**
- **$routeBack** : Es la url de la ruta anterior

#### Editar Default

[](#editar-default)

Para editar la vista por defecto es necesario publicala en su proyecto para ello ejecute en su consola lo siguiente

```
 $ php artisan vendor:publish --tag=views.lara_exception
```

de esa forma ahora tendra esta carpeta `resources\views\vendor\LaraException`, donde estara la vista llamada error.blade.php la cual es la que usted personalizara.

Captuara de otras excepciones y reglas 🙀
----------------------------------------

[](#captuara-de-otras-excepciones-y-reglas-scream_cat)

Suele suceder que se su proyecto tenga otro tipo de excepciones que no son precisamente lanzadas por LaraException.

Por ejemplo al entrar a una ruta que no existe se lanzara la excepcion `NotFoundHttpException` la cual por defecto Laravel mostrara una vista con el error "*Sorry, the page you are looking for could not be found.*".

Si usted lo desea puede hacer que LaraExcepcion tambien se encargue de este tipo de excepciones y retorne una vista que usted quiera o que simplemente ahora se lanzes una excepcion de LaraExcepcion, usted debe hacer lo siguiente:

Para el ejemplo se quiere que cuando se lance una excepcion de `NotFoundHttpException` y que ademas si en la url tiene el texto *blog* se ejecute es por una excepcion de LaraExcepcion.

Entonces para ello es necesario añadir en un servis provider; en el caso de estar trabajando en un proyecto se deberia registrar en el metodo `register` de `App\Providers\AppServiceProvider` si esta trabajando es en un paquete de laravel añadlo en el metodo register de su service provider.

```
        lara_exception_masterManager()->addExceptionCallBack(function($request, \Exception $exception){
            if(strpos($request->getPathInfo(),"/blog") !== FALSE){
                if($exception instanceof NotFoundHttpException){
                    lara_exception("Not Fount")->style('blog')->build(404);
                }
            }
        });
```

Con la ayuda del metodo `addExceptionCallBack` del MasterManager de LaraException usted puede indicar una funcion que contendra un logica que usted necesite pero que para el ejemplo es ejecutar una excepcion de LaraException cuando se lanaza una `NotFoundHttpException` y que ademas tenga en su url el texto `blog`

El la funcion que se añade recibe dos parametros, el `$request` que es el objeto de la solicitud y el parametro `$exception` que es la excepcion que se lanzo.

Siguiendo con el ejemplo verifico si en e la url esta la palabra blog url que se obtiene por medio del metodo `getPathInfo` que tiene el $request, al ser verdadero lo que hago es lanzar una excepcion de LaraExcepcion con su helper y adicionalmente indicando el estilo que quiero y finalizando con el codigo de error que quiero que entregue. :scream\_cat: :scream\_cat: :scream\_cat: :scream\_cat:

Sin embargo esto solo es una de las miles de cosas que se podrian hacer con un poco de imaginacion. 😏 😏 😏 💪

FIN
===

[](#fin)

###  Health Score

32

—

LowBetter than 71% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 99.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Total

13

Last Release

2772d ago

Major Versions

v0.0.10 → v1.0.02018-07-10

PHP version history (3 changes)v0.0.1PHP &gt;= 5.4

v0.0.10PHP &gt;= 7.0

v1.0.0PHP &gt;= 7

### Community

Maintainers

![](https://www.gravatar.com/avatar/e2fd73421b97b51d66481801f2e6472df8ef9eb92b52c020643c3cd4cf44e564?d=identicon)[FuriosoJack](/maintainers/FuriosoJack)

---

Top Contributors

[![FuriosoJack](https://avatars.githubusercontent.com/u/26976637?v=4)](https://github.com/FuriosoJack "FuriosoJack (116 commits)")[![SergioWiesner](https://avatars.githubusercontent.com/u/5554583?v=4)](https://github.com/SergioWiesner "SergioWiesner (1 commits)")

---

Tags

apicomposerexcepcionesexceptionexceptionsjsonlaravelrequesthttpresponserequestjsonlaravelexceptionsException Managerexcepcion

### Embed Badge

![Health badge](/badges/furiosojack-lara-exception/health.svg)

```
[![Health](https://phpackages.com/badges/furiosojack-lara-exception/health.svg)](https://phpackages.com/packages/furiosojack-lara-exception)
```

###  Alternatives

[fig/http-message-util

Utility classes and constants for use with PSR-7 (psr/http-message)

39489.0M272](/packages/fig-http-message-util)[chadicus/slim-oauth2-http

Bridge components for PSR-7 and bshaffer's OAuth2 Server http messages.

18455.2k7](/packages/chadicus-slim-oauth2-http)[guanguans/laravel-api-response

Normalize and standardize Laravel API response data structure. - 规范化和标准化 Laravel API 响应数据结构。

485.6k](/packages/guanguans-laravel-api-response)[chillerlan/php-httpinterface

A PSR-7/17/18 http message/client implementation

1417.1k5](/packages/chillerlan-php-httpinterface)[behamin/service-proxy

for proxy or sending requests to other services with useful utilities

102.2k](/packages/behamin-service-proxy)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
