Laravel_PHP チュートリアルで便利なキャッシュ マクロを共有する

WBOY
リリース: 2016-07-13 10:05:40
オリジナル
907 人が閲覧しました

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

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 ($分 == 0) {
キャッシュ::永久($key,$data);
} その他 {
キャッシュ::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/962932.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/962932.html技術記事 Laravel で便利なキャッシュ マクロを共有します。 Laravel が提供するキャッシュ ツールは、get、put、forget、forever などの基本的な使い方を紹介しています。最初は次のような感じでした。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート