ホームページ >バックエンド開発 >PHPチュートリアル >Laravel の便利なキャッシュ マクロを共有する、laravelcache Macro_PHP チュートリアル

Laravel の便利なキャッシュ マクロを共有する、laravelcache Macro_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:05:34919ブラウズ

Laravel の便利なキャッシュ マクロ、laravelcache マクロを共有します

Laravel が提供するキャッシュ ツールは非常に使いやすく、マニュアルでは get、put、forget、forever などの基本的な使い方が紹介されています。次のように使用されました:

コードをコピーします コードは次のとおりです:
if (!$article = Cache::get('article_1')) {
$article = 記事::find(1);
キャッシュ::forever('article_1',$article);
}

これは最も基本的な使用法です。キャッシュが存在するかどうかを自動的に判断し、存在しない場合はデータベースから取得してキャッシュに書き込みます。

後で、このモデルには remember メソッドと rememberForever メソッドも付属していることがわかりました。例:

コードをコピーします コードは次のとおりです:
$article = Article::rememberForever('article_1')->where('id','=',1);

これには制限があり、複雑なクエリ中にデータを完全にキャッシュすることはできません。たとえば、関連データをプリロードするために with() を使用する場合、関連データはキャッシュできません。

その後、Cache も Response のようなマクロ メソッドをカスタマイズできることがわかり、次のことを試してみました:

コードをコピーします コードは次のとおりです:
//キャッシュアクセスマクロを登録
Cache::macro('want',function($key,$ minutes=0,$callback){
If (!$data = Cache::get($key)) {
$data = call_user_func($callback);
if ($ minutes == 0) {
キャッシュ::永久($key,$data);
} else {
キャッシュ::put($key,$data,$ minutes);
}
}
$data を返します;
});

このメソッドは bootstrap/start.php に配置することも、フィルター内の App::before() に配置することもできます。これを使用する方法を見てみましょう。

コードをコピーします コードは次のとおりです: $id = 入力::get('id');
$article = Cache::want('article_'.$id,0,function() use ($id){
Return Article::with('tags')->findOrFail($id,['id','cid','title','コンテンツとしての content_html','created_at','updated_at']);
});

個人的にはこの書き方が好きです。皆さんがこの記事の内容を気に入っていただければ幸いです。

http://www.bkjia.com/PHPjc/963117.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/963117.html技術記事 Laravel で便利なキャッシュ マクロを共有します。 laravelcache マクロ Laravel が提供するキャッシュ ツールは、get、put、forget、forever などの基本的な使い方を紹介しています。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。