Repolode
mike-bronner

mike-bronner/laravel-model-caching

Paquete de Laravel que almacena en caché automáticamente las consultas de modelos Eloquent y sus relaciones, e invalida la caché cuando los modelos cambian.

Estrellas
2,378
Forks
231
Issues abiertos
2
Último commit
hace 4 días

¿Qué es?

Model Caching for Laravel añade el trait Cachable a los modelos Eloquent para guardar en la caché de la aplicación los resultados de las consultas, las relaciones precargadas y las agregaciones, sin necesidad de definir claves de caché manualmente. Cuando se crea, actualiza o elimina un modelo, las entradas de caché relacionadas se invalidan automáticamente. También se gestionan los cambios en las tablas pivot de las relaciones belongsToMany.

El paquete funciona con los stores de caché Redis, Memcached, APC y DynamoDB, y ofrece opciones como un TTL global o por modelo, un período de enfriamiento que agrupa las invalidaciones en modelos con muchas escrituras, una alternativa que consulta la base de datos cuando la caché no está disponible y prefijos de caché por tenant. Las consultas que usan inRandomOrder() o bloqueos de filas no se almacenan en caché, y si un modelo relacionado no usa el trait, la consulta de su modelo padre tampoco se almacena en caché.

Requiere PHP 8.3 o posterior y Laravel 12 o 13.

Funciones clave

  • 01Añade caché a las consultas Eloquent, las relaciones precargadas y las agregaciones mediante un trait o un modelo base
  • 02Invalida automáticamente las entradas de caché relacionadas al crear, actualizar o eliminar modelos, y cuando hay cambios en las tablas pivot
  • 03Es compatible con los stores de caché Redis, Memcached, APC y DynamoDB
  • 04Ofrece opciones de TTL de caché globales y por modelo
  • 05Proporciona un período de enfriamiento para limitar las invalidaciones causadas por escrituras frecuentes
  • 06Puede recurrir a consultas directas a la base de datos cuando el backend de caché no está disponible

Casos de uso

  • Acelerar páginas de Laravel con muchas lecturas que ejecutan repetidamente las mismas consultas Eloquent
  • Almacenar datos de modelos en caché sin escribir manualmente la lógica de Cache::remember y forget
  • Aplicaciones Laravel multi-tenant que necesitan aislar la caché por tenant
  • Aplicaciones que usan DynamoDB como store de caché gestionado en AWS

Inicio rápido

  1. 1

    Instala el paquete con Composer

    composer require mike-bronner/laravel-model-caching
  2. 2

    Añade el trait Cachable a un modelo base del que hereden tus modelos

  3. 3

    Publica el archivo de configuración si lo necesitas

    php artisan modelCache:publish --config

Antes de usarlo

  • Requiere PHP 8.3 o posterior y Laravel 12 o 13.
  • No se admiten los controladores de caché Array, File ni Database.
  • Las consultas que cargan de forma anticipada una relación cuyo modelo no usa Cachable no se almacenan en caché.
  • La invalidación de DynamoDB es solo lógica, por lo que las filas obsoletas permanecen hasta que se limpian mediante TTL.

Temas

Preguntas frecuentes

¿Qué es laravel-model-caching?
Paquete de Laravel que almacena en caché automáticamente las consultas de modelos Eloquent y sus relaciones, e invalida la caché cuando los modelos cambian. Model Caching for Laravel añade el trait Cachable a los modelos Eloquent para guardar en la caché de la aplicación los resultados de las consultas, las relaciones precargadas y las agregaciones, sin necesidad de definir claves de caché manualmente. Cuando se crea, actualiza o elimina un modelo, las entradas de caché relacionadas se invalidan automáticamente. También se gestionan los cambios en las tablas pivot de las relaciones belongsToMany.
¿laravel-model-caching es gratuito? ¿Qué licencia tiene?
laravel-model-caching es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿laravel-model-caching sigue mantenido?
Mantenimiento activo. El último commit de laravel-model-caching fue el 3 nov 2026.
¿Para qué puedo usar laravel-model-caching?
Acelerar páginas de Laravel con muchas lecturas que ejecutan repetidamente las mismas consultas Eloquent Almacenar datos de modelos en caché sin escribir manualmente la lógica de Cache::remember y forget Aplicaciones Laravel multi-tenant que necesitan aislar la caché por tenant Aplicaciones que usan DynamoDB como store de caché gestionado en AWS
¿Cómo se instala laravel-model-caching?
Instala el paquete con Composer: composer require mike-bronner/laravel-model-caching Añade el trait Cachable a un modelo base del que hereden tus modelos Publica el archivo de configuración si lo necesitas: php artisan modelCache:publish --config
¿Dónde consigo laravel-model-caching?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/mike-bronner/laravel-model-caching

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados