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

分享一個(gè)Laravel好用的Cache宏

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

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

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

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

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

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

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

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

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

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

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

//注冊(cè)緩存存取宏
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;
});

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

復(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']);
});

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    ThinkPHP5 框架引入 Go AOP,PHP AOP編程項(xiàng)目詳解

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

榆中县| 常熟市| 德清县| 博野县| 博湖县| 肇庆市| 徐州市| 宁乡县| 北辰区| 郓城县| 改则县| 左云县| 锡林郭勒盟| 东宁县| 益阳市| 永济市| 定远县| 德安县| 上高县| 云和县| 翁源县| 乐都县| 彝良县| 双鸭山市| 久治县| 西青区| 宜川县| 谢通门县| 凤庆县| 崇州市| 灵川县| 克东县| 错那县| 兴国县| 徐州市| 黄大仙区| 宁武县| 潞西市| 清新县| 芦溪县| 会理县|