98

GitHub - AuthentikCanada/eloquent-cache: Easily cache your Laravel's Elo...

 5 years ago
source link: https://github.com/AuthentikCanada/eloquent-cache
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

Eloquent Cache

Easily cache your Laravel's Eloquent models.

Build Status Coverage Status Latest Stable Version Total Downloads

Requirements

  • PHP>=7.0

  • Laravel 5.5 or 5.6

Installation

Install via composer :

composer require authentik/eloquent-cache

How it works

  • When Eloquent fetches one or many models by ID (without eager-loading), 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();

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK