Repolode
mike-bronner

mike-bronner/laravel-model-caching

Pacote Laravel que armazena automaticamente em cache consultas de modelos Eloquent e relacionamentos, invalidando o cache quando os modelos mudam.

Estrelas
2,378
Forks
231
Issues abertas
2
Último commit
há 4 dias

O que é?

O Model Caching for Laravel adiciona o trait Cachable aos modelos Eloquent para armazenar no cache da aplicação resultados de consultas, relacionamentos carregados antecipadamente e agregações, sem precisar definir chaves de cache manualmente. Quando um modelo é criado, atualizado ou excluído, as entradas de cache relacionadas são invalidadas automaticamente. Alterações em tabelas pivot de relações belongsToMany também são tratadas.

O pacote funciona com os stores de cache Redis, Memcached, APC e DynamoDB, e oferece opções como TTL global ou por modelo, um período de espera que agrupa invalidações em modelos com muitas gravações, fallback para o banco de dados quando o cache está indisponível e prefixos de cache por tenant. Consultas que usam inRandomOrder() ou bloqueios de linha não são armazenadas em cache, e um modelo relacionado sem o trait impede que a consulta do modelo pai seja armazenada em cache.

Requer PHP 8.3+ e Laravel 12 ou 13.

Recursos principais

  • 01Adiciona cache a consultas Eloquent, carregamentos antecipados e agregações por meio de um trait ou modelo base
  • 02Invalida automaticamente as entradas de cache relacionadas em criações, atualizações, exclusões e alterações em tabelas pivot
  • 03É compatível com os stores de cache Redis, Memcached, APC e DynamoDB
  • 04Oferece configurações de TTL de cache globais e por modelo
  • 05Disponibiliza um período de espera para limitar invalidações causadas por gravações frequentes
  • 06Pode recorrer a consultas diretas ao banco de dados quando o backend de cache está indisponível

Casos de uso

  • Acelerar páginas Laravel com muitas leituras que executam repetidamente consultas Eloquent
  • Armazenar dados de modelos em cache sem escrever manualmente a lógica de Cache::remember e forget
  • Usar em aplicações Laravel multi-tenant que precisam isolar o cache por tenant
  • Usar em aplicações que adotam DynamoDB como store de cache gerenciado na AWS

Início rápido

  1. 1

    Instale o pacote com o Composer

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

    Adicione o trait Cachable a um modelo base do qual seus modelos herdem

  3. 3

    Se quiser, publique o arquivo de configuração

    php artisan modelCache:publish --config

Antes de usar

  • Requer PHP 8.3 ou superior e Laravel 12 ou 13.
  • Os drivers de cache Array, File e Database não são compatíveis.
  • Consultas que carregam antecipadamente uma relação cujo modelo não usa Cachable não são armazenadas em cache.
  • A invalidação do DynamoDB é apenas lógica; por isso, linhas desatualizadas permanecem até a limpeza por TTL.

Tópicos

Perguntas frequentes

O que é laravel-model-caching?
Pacote Laravel que armazena automaticamente em cache consultas de modelos Eloquent e relacionamentos, invalidando o cache quando os modelos mudam. O Model Caching for Laravel adiciona o trait Cachable aos modelos Eloquent para armazenar no cache da aplicação resultados de consultas, relacionamentos carregados antecipadamente e agregações, sem precisar definir chaves de cache manualmente. Quando um modelo é criado, atualizado ou excluído, as entradas de cache relacionadas são invalidadas automaticamente. Alterações em tabelas pivot de relações belongsToMany também são tratadas.
laravel-model-caching é gratuito? Qual é a licença?
laravel-model-caching é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
laravel-model-caching ainda é mantido?
Manutenção ativa. O último commit de laravel-model-caching foi em 3 de nov. de 2026.
Para que posso usar laravel-model-caching?
Acelerar páginas Laravel com muitas leituras que executam repetidamente consultas Eloquent Armazenar dados de modelos em cache sem escrever manualmente a lógica de Cache::remember e forget Usar em aplicações Laravel multi-tenant que precisam isolar o cache por tenant Usar em aplicações que adotam DynamoDB como store de cache gerenciado na AWS
Como instalar laravel-model-caching?
Instale o pacote com o Composer: composer require mike-bronner/laravel-model-caching Adicione o trait Cachable a um modelo base do qual seus modelos herdem Se quiser, publique o arquivo de configuração: php artisan modelCache:publish --config
Onde consigo laravel-model-caching?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/mike-bronner/laravel-model-caching

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados