LaravelPackages.net
Acme Inc.
Toggle sidebar
authentik/eloquent-cache

Easily cache your Laravel's Eloquent models

3.905
57
1.3.2
About authentik/eloquent-cache

authentik/eloquent-cache is a Laravel package for easily cache your laravel's eloquent models. It currently has 57 GitHub stars and 3.905 downloads on Packagist (latest version 1.3.2). Install it with composer require authentik/eloquent-cache. Discover more Laravel packages by authentik or browse all Laravel packages to compare alternatives.

Last updated

Eloquent Cache

Easily cache your Laravel's Eloquent models.

Build Status Coverage Status Latest Stable Version Total Downloads

Requirements

  • PHP >= 7.2

  • Laravel 6 / 7 / 8

Installation

Install via composer :

composer require authentik/eloquent-cache

How it works

  • When Eloquent fetches models, the JSON representations of the model instances are cached.

  • Subsequently, when eloquent fetches a model by ID, the cached JSON will be converted back into an instance.

Usage

Use the Cacheable trait in the models you want to cache.

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Authentik\EloquentCache\Cacheable;

class Category extends Model
{
    use Cacheable;


    /*
     * You can optionally override the following functions:
     */
    
    // Time To Live in minutes (default value: 0 => no TTL)
    public function getCacheTTL() {
        return 60;
    }

    // default value: the lowercase name of the model
    public function getCacheTagName() {
        return 'cat';
    }

    // Cache busting will automatically invalidate the cache when model instances are updated or deleted.
    // default value: true
    public function isCacheBustingEnabled() {
        return false;
    }

    // Whether or not to keep model instances in a static array cache
    //  (useful to avoid querying the cache store/building instances from json multiple times)
    // default value: true
    public function isStaticCacheEnabled() {
        return false;
    }
}

To manually cache a model instance, use the cache method.

Category::find(1)->cache();

To invalidate the cache for a model instance, use the refresh or flush method.

$refreshedInstance = Category::find(1)->refresh();

// or

Category::flush(Category::find(1));

To invalidate the cache for all instances of a model, use the flush method.

Category::flush();

Changelog

Click Here

Comments