Genera archivos PHPDoc para facades de Laravel y modelos Eloquent, para que IDEs como PhpStorm ofrezcan autocompletado preciso.
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
Instala el paquete con Composer
composer require mike-bronner/laravel-model-caching - 2
Añade el trait Cachable a un modelo base del que hereden tus modelos
- 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
Paquete de Laravel que captura consultas lentas a la base de datos, agrupa las repetidas y usa un LLM para sugerir índices y reescrituras, con un panel integrado.
Un framework web de Python de alto nivel que promueve el desarrollo rápido y un diseño limpio y pragmático.
Servidor de caché de baja latencia escrito en C, compatible con los protocolos Memcache, Redis/Valkey, HTTP y Postgres, que también puede integrarse como un único archivo C.
Biblioteca cliente de Redis para .NET con compatibilidad con Redis Sentinel y Cluster, y API síncronas y asíncronas.
Framework de aplicaciones web en PHP con sintaxis expresiva que incluye enrutamiento, ORM, migraciones, colas y difusión de eventos en tiempo real.