plug2team / model-cacheable
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/plug2team/model-cacheable
Requires
- php: ^7.4
- illuminate/console: ^7.0
- illuminate/support: ^7.0
This package is auto-updated.
Last update: 2025-10-24 16:15:24 UTC
README
Pacote para controlar cache em modelos.
Instalação
composer require plug2team/model-cached
Após a instalação do pacote, importe o arquivo de configuração:
php artisan vendor:publish --tag=config
Configurando modelos
Para seu modelo ser observado pelo cache, basta aplicar a trait Cacheable em sua model.
namespace App; use Illuminate\Foundation\Auth\User as Authenticatable; use Plug2Team\ModelCached\Concerns\Cacheable; class User extends Authenticatable { use Cacheable;
em AppServiceProvider no metodo boot registre o modelo
public function boot() { \App\User::crape(); }
Utilidades
Registre os comandos auxiliares em Console/Kernel.php.
$schedule->command('cacheable:flush')->cron(config('model_cached.commands.flush')); $schedule->command('cacheable:reindex')->cron(config('model_cached.commands.re_index'));
Como funciona
Após alguns testes, observei que é mais facil e eficiente gerenciar a persistencia de registros por agrupamento.
O agrupamento funciona assim:
-
Convertemos o nome da model de
App\Userparauser. -
Após termos o nome, criamos o grupo de indices para nome
user.indexesonde guardamos e gerenciamos osidsrecebimos por meio dos eventos do eloquente. -
Tendo esses indices, o proximo passo é criar o agrupamento padrão o grupo
allpode ser recuperadoapp('cacheable')->index('App\User')->group('all')->retrieve()outra forma de recuperar esse grupo é chamando direto na model\App\User::cache('all'). -
Para capturar os indices vinculados ao grupo
app('cacheable')->index('App\User')->group('all')->getIndexes()ouapp('cache')->get('cached.{model}.{group}')isso retornara a lista de ids vinculados ao grupo.
Recuperar indice
A estrutura de chaves é .id
Recuperar grupos
Após registrar a model, passamos a monitorar os eventos do eloquente: saved,deleted,retrieved.
Para recupear um agrupamento é simples, basta informar o grupo em:
$users = \App\User::cache('all');
O grupo all é registrado por padrão, outros grupos podem ser registrados com sua arvores de chaves.