最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

分享一個Laravel好用的Cache宏

 更新時間:2015年03月02日 15:14:20   投稿:hebedich  
這篇文章主要介紹了分享一個Laravel好用的Cache宏的方法的相關(guān)資料,需要的朋友可以參考下

Laravel提供的緩存工具很好用,手冊里介紹了一些基本的用法,比如get,put,forget,forever等,一開始我是像下面這樣使用的:

復(fù)制代碼 代碼如下:

if (!$article = Cache::get('article_1')) {
    $article = Article::find(1);
    Cache::forever('article_1',$article);
}

這是最基本的用法,自動判斷緩存是否存在,不存在則從數(shù)據(jù)庫中取并寫入緩存。

后來發(fā)現(xiàn)模型也自帶remember 和 rememberForever方法,例如可以這樣:

復(fù)制代碼 代碼如下:

$article = Article::rememberForever('article_1')->where('id','=',1);

這個有局限性,在復(fù)雜查詢時并不能完全緩存數(shù)據(jù),比如使用了with()預(yù)加載關(guān)聯(lián)數(shù)據(jù)時就無法緩存關(guān)聯(lián)數(shù)據(jù)。

然后發(fā)現(xiàn)Cache也可以像Response那樣自定義宏方法,遂作如下嘗試:

復(fù)制代碼 代碼如下:

//注冊緩存存取宏
Cache::macro('want',function($key,$minutes=0,$callback){
    if (!$data = Cache::get($key)) {
        $data = call_user_func($callback);
        if ($minutes == 0) {
            Cache::forever($key,$data);
        } else {
            Cache::put($key,$data,$minutes);
        }
    }
    return $data;
});

這個方法可以放在bootstrap/start.php里,也可以放在filter中的App::before()中,隨自己項目方便吧,看下如何使用的:

復(fù)制代碼 代碼如下:

$id = Input::get('id');
$article = Cache::want('article_'.$id,0,function() use ($id){
    return Article::with('tags')->findOrFail($id,['id','cid','title','content_html as content','created_at','updated_at']);
});

個人挺喜歡這種寫法的。希望大家能夠喜歡本文內(nèi)容。

相關(guān)文章

  • 使用php顯示搜索引擎來的關(guān)鍵詞

    使用php顯示搜索引擎來的關(guān)鍵詞

    在訪客從搜索引擎而來的第一個頁面上顯示訪客搜索的關(guān)鍵詞,根據(jù)這個關(guān)鍵詞做出一些提高網(wǎng)站交互能力的改變,比如顯示這個關(guān)鍵詞相關(guān)的其它文章
    2014-02-02
  • PHP curl實現(xiàn)抓取302跳轉(zhuǎn)后頁面的示例

    PHP curl實現(xiàn)抓取302跳轉(zhuǎn)后頁面的示例

    這篇文章主要介紹了PHP curl實現(xiàn)抓取302跳轉(zhuǎn)后頁面的示例,主要是對CURLOPT_CUSTOMREQUEST參數(shù)的運用,需要的朋友可以參考下
    2014-07-07
  • PHP實現(xiàn)PDF轉(zhuǎn)圖片的詳細(xì)過程(使用imagick)

    PHP實現(xiàn)PDF轉(zhuǎn)圖片的詳細(xì)過程(使用imagick)

    最近有一份pdf文件,需要將其轉(zhuǎn)換成圖片,所以這篇文章主要給大家介紹了關(guān)于PHP實現(xiàn)PDF轉(zhuǎn)圖片的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • PHP Pipeline 實現(xiàn)中間件的示例代碼

    PHP Pipeline 實現(xiàn)中間件的示例代碼

    這篇文章主要介紹了PHP Pipeline 實現(xiàn)中間件的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • ThinkPHP5 框架引入 Go AOP,PHP AOP編程項目詳解

    ThinkPHP5 框架引入 Go AOP,PHP AOP編程項目詳解

    這篇文章主要介紹了ThinkPHP5 框架引入 Go AOP,PHP AOP編程,結(jié)合具體項目項目分析了ThinkPHP5 引入 Go AOP,PHP AOP編程相關(guān)概念、原理、操作技巧與注意事項,需要的朋友可以參考下
    2020-05-05
  • php中smarty區(qū)域循環(huán)的方法

    php中smarty區(qū)域循環(huán)的方法

    這篇文章主要介紹了php中smarty區(qū)域循環(huán)的方法,實例分析了smarty中foreach循環(huán)與section循環(huán)的使用技巧,需要的朋友可以參考下
    2015-06-06
  • Laravel配置全局公共函數(shù)的方法步驟

    Laravel配置全局公共函數(shù)的方法步驟

    這篇文章主要給大家介紹了關(guān)于Laravel配置全局公共函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Laravel具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • php判斷是否為json格式的方法

    php判斷是否為json格式的方法

    這篇文章主要介紹了php判斷是否為json格式的方法,需要的朋友可以參考下
    2014-03-03
  • PHP的openssl加密擴展使用小結(jié)(推薦)

    PHP的openssl加密擴展使用小結(jié)(推薦)

    下面小編就為大家?guī)硪黄狿HP的openssl加密擴展使用小結(jié)(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • 解決Laravel 使用insert插入數(shù)據(jù),字段created_at為0000的問題

    解決Laravel 使用insert插入數(shù)據(jù),字段created_at為0000的問題

    今天小編就為大家分享一篇解決Laravel 使用insert插入數(shù)據(jù),字段created_at為0000的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10

最新評論

绩溪县| 凤翔县| 广宁县| 贵阳市| 黄大仙区| 东阳市| 定边县| 浑源县| 八宿县| 泽库县| 武宁县| 鹰潭市| 健康| 阿克陶县| 砚山县| 句容市| 田东县| 元氏县| 江华| 和硕县| 弥渡县| 色达县| 桂平市| 建昌县| 松桃| 喜德县| 昌吉市| 崇礼县| 忻城县| 天镇县| 永善县| 石台县| 横山县| 鄂尔多斯市| 舒城县| 林周县| 和林格尔县| 江津市| 历史| 龙山县| 土默特左旗|