PHPackages                             esolutions/laravel - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. esolutions/laravel

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

esolutions/laravel
==================

Base Laravel utilities for ESolutions ecosystem

v1.0.6(2mo ago)001proprietaryPHPPHP ^8.2

Since May 22Pushed 1mo agoCompare

[ Source](https://github.com/eriquegasparcarlos/esolutions-laravel)[ Packagist](https://packagist.org/packages/esolutions/laravel)[ RSS](/packages/esolutions-laravel/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (1)Versions (3)Used By (1)

esolutions/laravel
==================

[](#esolutionslaravel)

Utilidades base para proyectos Laravel del ecosistema ESolutions.

Instalación
-----------

[](#instalación)

```
composer require esolutions/laravel
```

Namespace
---------

[](#namespace)

```
Esolutions\Laravel\

```

---

Auth — `AuthHelper`
-------------------

[](#auth--authhelper)

Verifica que la contraseña del request coincida con la del usuario autenticado.

```
use Esolutions\Laravel\Auth\AuthHelper;

if (!AuthHelper::checkPassword($request->input('password'))) {
    return ApiResponse::error('La contraseña es incorrecta', 403);
}
```

---

Http — `ApiResponse`
--------------------

[](#http--apiresponse)

Respuestas JSON estandarizadas con encoding UTF-8.

```
use Esolutions\Laravel\Http\ApiResponse;

return ApiResponse::success('Registro guardado', 201, $data);
return ApiResponse::error('No encontrado', 404);
```

MétodoParámetrosDescripción`success($message, $code, $data)``string, int=200, array=null`Respuesta exitosa`error($message, $code, $errors)``string, int=500, array=null`Respuesta de error`response($data, $code)``array, int=200`Respuesta genérica### Funciones globales

[](#funciones-globales)

El paquete registra `apiSuccess()` y `apiError()` como funciones globales que delegan a `ApiResponse`:

```
apiSuccess('Guardado correctamente', 200, $data);
apiError('Error al procesar', 500);
```

---

Cache
-----

[](#cache)

### `TraitCache`

[](#traitcache)

Trait base para clases de cache del proyecto. Proporciona nombre de clave y limpieza automática. Al ejecutar `clearCache()` dispara el evento `CacheTableCleared`.

```
use Esolutions\Laravel\Cache\TraitCache;

class PlanCache
{
    use TraitCache;

    static function getModel(): Plan
    {
        return new Plan();
    }

    static function getCache(): array
    {
        $key = self::getNameCache();

        return Cache::remember($key, 7200, function () {
            return Plan::query()->get()->map(fn($r) => [
                'id'    => $r->id,
                'name'  => $r->name,
                'label' => $r->name,
            ])->toArray();
        });
    }
}

// Uso
PlanCache::clearCache(); // limpia cache y dispara CacheTableCleared
$data = PlanCache::getCache();
```

**Métodos que provee el trait:**

MétodoDescripción`getNameCache()`Genera la clave de cache basada en la tabla del modelo`clearCache()`Olvida la cache y dispara el evento `CacheTableCleared`**Métodos que debe implementar la clase:**

MétodoDescripción`getModel()`Retorna instancia del modelo Eloquent`getCache()`Retorna los datos cacheados### `CacheRegistry`

[](#cacheregistry)

Escanea `app/Cache/` automáticamente, llama `getCache()` en cada clase encontrada y agrega los resultados. Usado por `AppController::getTables()`.

```
use Esolutions\Laravel\Cache\CacheRegistry;

$tables = CacheRegistry::getTables();
// → ['plans' => [...], 'translations' => [...]]
```

**Convención:** Las clases deben llamarse `{Nombre}Cache` y tener el método estático `getCache()`.

### `HelperCache`

[](#helpercache)

Genera nombres de claves de cache consistentes.

```
use Esolutions\Laravel\Cache\HelperCache;

$key = HelperCache::nameCache('plans'); // → "k_table_plans"
```

---

Events — `CacheTableCleared`
----------------------------

[](#events--cachetablecleared)

Evento disparado automáticamente por `TraitCache::clearCache()`. Los proyectos que necesiten reaccionar (broadcast, notificaciones, etc.) registran un listener.

```
// app/Listeners/BroadcastCacheUpdate.php
use Esolutions\Laravel\Events\CacheTableCleared;

class BroadcastCacheUpdate
{
    public function handle(CacheTableCleared $event): void
    {
        broadcast(new SystemTableUpdated($event->table, $event->data))->toOthers();
    }
}

// app/Providers/EventServiceProvider.php
protected $listen = [
    CacheTableCleared::class => [BroadcastCacheUpdate::class],
];
```

Proyectos sin broadcast simplemente no registran el listener.

**Propiedades del evento:**

PropiedadTipoDescripción`$table``string`Nombre de la tabla (ej: `plans`, `translations`)`$data``array`Datos actualizados tras limpiar la cache---

Support
-------

[](#support)

### `StringHelper`

[](#stringhelper)

```
use Esolutions\Laravel\Support\StringHelper;

StringHelper::upper('hola mundo');           // "HOLA MUNDO"
StringHelper::lower('HOLA MUNDO');           // "hola mundo"
StringHelper::removeSpaces('hola  mundo');   // "hola mundo"
StringHelper::removeNewLines("hola\nmundo"); // "hola | mundo"
StringHelper::random(8);                     // "A3KX92BM"
StringHelper::random(6, '0123456789');       // "482901"
```

### `NumberHelper`

[](#numberhelper)

```
use Esolutions\Laravel\Support\NumberHelper;

NumberHelper::format(1234.5);     // "1234.50"
NumberHelper::format(1234.5, 4);  // "1234.5000"
```

### `SystemHelper`

[](#systemhelper)

```
use Esolutions\Laravel\Support\SystemHelper;

SystemHelper::isWindows(); // true / false
SystemHelper::getDomain(); // "garcia.intipos13.oo"
```

---

Logging — `LogHelper`
---------------------

[](#logging--loghelper)

Registra excepciones con contexto completo en `storage/logs/user-{id}.log`.

```
use Esolutions\Laravel\Logging\LogHelper;

try {
    // ...
} catch (Throwable $e) {
    LogHelper::logUserException($e, $request);
}
```

Captura: mensaje, archivo, línea, URL, método HTTP, input, usuario, IP, user agent, headers.

---

Console — `ProgressBarHelper`
-----------------------------

[](#console--progressbarhelper)

Barra de progreso visual para comandos Artisan.

```
use Esolutions\Laravel\Console\ProgressBarHelper;

$bar = new ProgressBarHelper(barLength: 30);

foreach ($records as $i => $record) {
    // procesar...
    $bar->render($i + 1, count($records), 'success', $record->name);
}
```

```
Progreso: [████████████░░░░░░░░░░░░░░░░░░] 12/30 (40.0%) - García S.A.C.

```

StatusColor`success`Verde`error`Rojo`warning`Amarillo`info`Blanco

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance89

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~8 days

Total

2

Last Release

66d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/57302658?v=4)[eriquegasparcarlos](/maintainers/eriquegasparcarlos)[@eriquegasparcarlos](https://github.com/eriquegasparcarlos)

---

Top Contributors

[![eriquegasparcarlos](https://avatars.githubusercontent.com/u/57302658?v=4)](https://github.com/eriquegasparcarlos "eriquegasparcarlos (11 commits)")

### Embed Badge

![Health badge](/badges/esolutions-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/esolutions-laravel/health.svg)](https://phpackages.com/packages/esolutions-laravel)
```

###  Alternatives

[markwalet/nova-modal-response

A Laravel Nova asset for Modal responses on an action.

17878.9k](/packages/markwalet-nova-modal-response)[crumbls/layup

A visual page builder plugin for Filament 5 — Divi-style grid layouts with extensible widgets.

592.8k2](/packages/crumbls-layup)[duncanmcclean/statamic-cargo

Comprehensive e-commerce addon for Statamic. Build bespoke e-commerce sites without the complexity.

3518.3k](/packages/duncanmcclean-statamic-cargo)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.4k](/packages/tomshaw-electricgrid)

PHPackages © 2026

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