2017 © Pedro Peláez
 

library cacheable

Automatically cache Eloquent models using the find methods

image

pulkitjalan/cacheable

Automatically cache Eloquent models using the find methods

  • Sunday, March 13, 2016
  • by pulkitjalan
  • Repository
  • 2 Watchers
  • 10 Stars
  • 13,317 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 3 Versions
  • 2 % Grown

The README.md

Cacheable

Automatically cache basic Eloquent models using the find methods, (*1)

License Latest Version Total Downloads, (*2)

Requirements

  • PHP >= 5.5.9
  • Laravel >= 5.1

Installation

Install via composer - In the terminal, (*3)

composer require pulkitjalan/cacheable

This package makes use of pulkitjalan\multicache which requires a service provider to be registered. So add the following to the providers array in your config/app.php, (*4)

PulkitJalan\Cache\Providers\MultiCacheServiceProvider::class

Usage

Simply use the Cacheable trait in any model you want to be cache automatically., (*5)

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use PulkitJalan\Cacheable\Cacheable;

class CachedModel extends Model
{
    use Cacheable;
}

Caching the model only works with using the find, findMany or findOrFail methods., (*6)

If you would like caching behavior like in Laravel 4 then consider using dwightwatson/rememberable which adds the remember function back into eloquent. Both packages can be used together also., (*7)

You can optinally set the expiry time in minutes for the model, by default it is set to 1440 minutes (24 hours)., (*8)

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use PulkitJalan\Cacheable\Cacheable;

class CachedModel extends Model
{
    use Cacheable;

    /**
     * Set the cache expiry time.
     *
     * @var int
     */
    public $cacheExpiry = 60;
}

Models are cached using the models table name as the cache tag and the id as the key. There are observers which get registered in the trait to also remove from cache when the saved or deleted., (*9)

Caching is only applied to basic models (ones without any conditions added)., (*10)

// cached
CachedModel::find(1);

// not cached
CachedModel::where('some_field', 1)->find(1);

// not cached
CachedModel::with('relation')->find(1);

The cache can be manually cleared by calling the new refresh method on the cached model which can be found in the Cacheable trait., (*11)

// manually clear cache
CachedModel::find(1)->refresh();

The Versions

13/03 2016

dev-master

9999999-dev https://github.com/pulkitjalan/cacheable

Automatically cache Eloquent models using the find methods

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel cache eloquent

14/02 2016

0.2.0

0.2.0.0 https://github.com/pulkitjalan/cacheable

Automatically cache Eloquent models using the find methods

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel cache eloquent

23/09 2015

0.1.0

0.1.0.0 https://github.com/pulkitjalan/cacheable

Automatically cache Eloquent models using the find methods

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel cache eloquent