laravie/cabinet
最新稳定版本:v3.0.2
Composer 安装命令:
composer require laravie/cabinet
包简介
Runtime Cache for Laravel Eloquent
README 文档
README
Cabinet allows you to attach runtime or persistent caching to any Laravel Eloquent instance.
Installation
To install through composer, simply put the following in your composer.json file:
{
"require": {
"laravie/cabinet": "^3.0"
}
}
And then run composer install or composer update from the terminal.
Quick Installation
Above installation can also be simplify by using the following command:
composer require "laravie/cabinet=^3.0"
Usages
Setup Cabinet on a Model
You first need to add Laravie\Cabinet\Cabinet on an Eloquent Model such as:
<?php namespace App; use Illuminate\Foundation\Auth\User as Authenticatable; use Laravie\Cabinet\Cabinet; class User extends Authenticatable { use Cabinet; }
Allow persistent caching
To add persistent caching on the Eloquent, you have to attach a cache storage that support tags (Cache tags are not supported when using the file or database cache driver).
<?php namespace App; use Illuminate\Foundation\Auth\User as Authenticatable; use Laravie\Cabinet\Cabinet; class User extends Authenticatable { use Cabinet; /** * Configure cabinet for the eloquent model. * * @param \Laravie\Cabinet\Repository $cabinet * @return void */ protected function onCabinet($cabinet) { $cabinet->setStorage(resolve('cache.store')); } }
Storing data
Runtime
Laravie\Cabinet\Repository::share(string $key, callable $callback);
The method allows a value to be register for $key using a closure/callable $callback.
$user->cabinet()->share('birthday', static function ($user) { return now()->diffInDays($user->birthdate); });
Persistent with TTL
Laravie\Cabinet\Repository::share(string $key, callable $callback, $ttl = null);
By adding the 3rd parameter $ttl (in seconds), Cabinet will attempt to store the data in cache for $ttl seconds.
$user->cabinet()->share('birthday', static function ($user) { return now()->diffInDays($user->birthdate); }, 60);
Forever
Laravie\Cabinet\Repository::forever(string $key, callable $callback);
You can either use forever as the 3rd parameter using share or use forever to cache the value indefinitely.
$user->cabinet()->share('birthday', static function ($user) { return now()->diffInDays($user->birthdate); }, 'forever'); // or $user->cabinet->forever('birthday', static function ($user) { return now()->diffInDays($user->birthdate); })
Retrieving the data
Laravie\Cabinet\Repository::get(string $key);
Retrieving the data using get method.
$user->cabinet()->get('birthday'); // or $user->cabinet('birthday');
Forgetting the data
Laravie\Cabinet\Repository::forget(string $key);
Forget any data by the given $key.
$user->cabinet()->forget('birthday');
Flushing all data
Laravie\Cabinet\Repository::flush();
Flushing all data for an Eloquent model.
$user->cabinet()->flush();
统计信息
- 总下载量: 12.63k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 12
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-11-01