esolutions/laravel
最新稳定版本:v1.0.6
Composer 安装命令:
composer require esolutions/laravel
包简介
Base Laravel utilities for ESolutions ecosystem
README 文档
README
Utilidades base para proyectos Laravel del ecosistema ESolutions.
Instalación
composer require esolutions/laravel
Namespace
Esolutions\Laravel\
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
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étodo | Parámetros | Descripció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
El paquete registra apiSuccess() y apiError() como funciones globales que delegan a ApiResponse:
apiSuccess('Guardado correctamente', 200, $data); apiError('Error al procesar', 500);
Cache
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étodo | Descripció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étodo | Descripción |
|---|---|
getModel() |
Retorna instancia del modelo Eloquent |
getCache() |
Retorna los datos cacheados |
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
Genera nombres de claves de cache consistentes.
use Esolutions\Laravel\Cache\HelperCache; $key = HelperCache::nameCache('plans'); // → "k_table_plans"
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:
| Propiedad | Tipo | Descripción |
|---|---|---|
$table |
string |
Nombre de la tabla (ej: plans, translations) |
$data |
array |
Datos actualizados tras limpiar la cache |
Support
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
use Esolutions\Laravel\Support\NumberHelper; NumberHelper::format(1234.5); // "1234.50" NumberHelper::format(1234.5, 4); // "1234.5000"
SystemHelper
use Esolutions\Laravel\Support\SystemHelper; SystemHelper::isWindows(); // true / false SystemHelper::getDomain(); // "garcia.intipos13.oo"
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
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.
| Status | Color |
|---|---|
success |
Verde |
error |
Rojo |
warning |
Amarillo |
info |
Blanco |
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: proprietary
- 更新时间: 2026-06-11