> 백엔드 개발 > PHP 튜토리얼 > Laravel에서 유용한 Cache Macro_php 예제를 공유하세요

Laravel에서 유용한 Cache Macro_php 예제를 공유하세요

WBOY
풀어 주다: 2016-05-16 20:22:18
원래의
1428명이 탐색했습니다.

라라벨에서 제공하는 캐싱 도구는 사용하기 매우 쉽습니다. 매뉴얼에는 get, put, 잊어버리기, 영원히 등과 같은 몇 가지 기본적인 사용법이 소개되어 있습니다. 처음에는 다음과 같이 사용했습니다.

코드 복사 코드는 다음과 같습니다.

if (!$article = Cache::get('article_1')) {
$article = 기사::find(1);
캐시::forever('article_1',$article);
}

가장 기본적인 사용법입니다. 캐시가 존재하는지 자동으로 확인합니다. 캐시가 없으면 데이터베이스에서 가져와서 캐시에 기록합니다.

나중에 모델에 Remember 및 RememberForever 메소드도 함께 제공된다는 사실을 발견했습니다. 예를 들면 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

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

복잡한 쿼리 중에는 데이터를 완전히 캐시할 수 없습니다. 예를 들어 with()를 사용하여 관련 데이터를 미리 로드하는 경우 관련 데이터를 캐시할 수 없습니다.

그러다가 Cache가 Response와 같은 매크로 메소드를 사용자 정의할 수도 있다는 사실을 발견하고 다음을 시도했습니다.

코드 복사 코드는 다음과 같습니다.

//캐시 접근 매크로 등록
캐시::macro('want',function($key,$ Minutes=0,$callback){
If (!$data = Cache::get($key)) {
          $data = call_user_func($callback);
            if ($분 == 0) {
캐시::forever($key,$data);
         } else {
캐시::put($key,$data,$분);
}
}
$data 반환;
});

이 메소드는 bootstrap/start.php에 배치하거나 필터의 App::before()에 배치할 수 있습니다. 사용 방법을 살펴보겠습니다.

코드 복사 코드는 다음과 같습니다.
$id = 입력::get('id');
$article = Cache::want('article_'.$id,0,function() 사용 ($id){
기사 반환::with('tags')->findOrFail($id,['id','cid','title','content_html as content','created_at','updated_at']);
});

저는 개인적으로 이런 글을 좋아합니다. 여러분 모두가 이 기사의 내용을 좋아하길 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿