PHPackages                             aslnbxrz/simple-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. [API Development](/categories/api)
4. /
5. aslnbxrz/simple-exception

ActiveLibrary[API Development](/categories/api)

aslnbxrz/simple-exception
=========================

A comprehensive exception handling package for Laravel with custom error responses and enum-based error codes

2.0.3(2mo ago)1133↓50%MITPHPPHP ^8.2

Since Sep 5Pushed 2mo agoCompare

[ Source](https://github.com/aslnbxrz/simple-exception)[ Packagist](https://packagist.org/packages/aslnbxrz/simple-exception)[ RSS](/packages/aslnbxrz-simple-exception/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (8)Versions (47)Used By (0)

SimpleException – Laravel Package
=================================

[](#simpleexception--laravel-package)

[![Latest Version on Packagist](https://camo.githubusercontent.com/1cf0b4b5f501cfce02a05dff581e8b7636514e95ea46e9df6ced7a397786bcc0/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f61736c6e6278727a2f73696d706c652d657863657074696f6e2e737667)](https://packagist.org/packages/aslnbxrz/simple-exception)[![Total Downloads](https://camo.githubusercontent.com/14466f74b2870bc1d7a84dd6931e391e7bc2808072e68e94af605dc761690cde/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f61736c6e6278727a2f73696d706c652d657863657074696f6e2e737667)](https://packagist.org/packages/aslnbxrz/simple-exception)[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE)

A modern exception handling package for Laravel with **enum-based error codes**, **automatic translation sync**, and **clean JSON API responses**.

---

🚀 Features
----------

[](#-features)

- ✅ **Enum-based error codes** (e.g. `MainRespCode`, `UserRespCode`)
- ✅ **Helper functions**: `error()`, `error_if()`, `error_unless()`, `error_response()`
- ✅ **Automatic translation sync**: keep enum cases in sync with `lang/` files
- ✅ **Configurable**: response structure, error keys, caching
- ✅ **Laravel-ready**: Service provider, config publish, artisan commands
- ✅ Works with **Laravel 9 → 12+**

---

📦 Installation
--------------

[](#-installation)

```
composer require aslnbxrz/simple-exception
```

Publish config:

```
php artisan vendor:publish --tag=simple-exception-config
```

This creates `config/simple-exception.php`.

---

⚙️ Configuration
----------------

[](#️-configuration)

### Example

[](#example)

```
'response' => [
    'template' => 'default',

    'templates' => [
        'default' => [
            'success' => ':success',
            'data'    => ':data',
            'error'   => [
                'message' => ':message',
                'code'    => ':code',
            ],
            'meta'    => ':meta',
        ],
    ],
],

'default_error_code' => -1,

'enum_generation' => [
    'resp_codes_dir' => 'Enums/RespCodes', // relative to app/
],

'translations' => [
    'base_path' => 'vendor/simple-exception',
],
```

---

🎯 Quick Start
-------------

[](#-quick-start)

### Step 1 – Generate an Enum

[](#step-1--generate-an-enum)

```
php artisan make:resp-code User --cases="NotFound=404,Forbidden=403" --locale=en,uz
```

This creates:

- `app/Enums/RespCodes/UserRespCode.php`
- `lang/vendor/simple-exception/en/user.php`
- `lang/vendor/simple-exception/uz/user.php`

---

### Step 2 – Throw Errors

[](#step-2--throw-errors)

```
use App\Enums\RespCodes\UserRespCode;

// Always throws SimpleErrorResponse
error(UserRespCode::NotFound);

// Conditional helpers
error_if(!$user, UserRespCode::NotFound);
error_unless($user->can('update'), UserRespCode::Forbidden);

// Custom string error
error_response('Custom failure', 1001);
```

---

### Step 3 – Example Controller

[](#step-3--example-controller)

```
use App\Enums\RespCodes\UserRespCode;

class UserController extends Controller
{
    public function show($id)
    {
        $user = User::find($id);

        error_if(!$user, UserRespCode::NotFound);

        return response()->json(['user' => $user]);
    }
}
```

---

🌍 Translation Management
------------------------

[](#-translation-management)

### Sync all enums

[](#sync-all-enums)

```
php artisan sync:resp-translations --all
```

### Sync one enum

[](#sync-one-enum)

```
php artisan sync:resp-translations UserRespCode --locale=uz
```

Output:

```
📋 Found 1 enum(s).
🔄 Syncing App\Enums\RespCodes\UserRespCode
   ✅ lang/vendor/simple-exception/uz/user.php created/updated

```

### Example Translation File

[](#example-translation-file)

`lang/vendor/simple-exception/en/user.php`

```
