PHP Shopify 커넥터와 함께 Laravel 4를 사용하고 있습니다. 특정 제품 페이지가 처음 필요할 때 캐싱하여 Shopify 제품을 검색하도록 호출을 제한하려고합니다.Laravel 4 Cache :: remember는 주어진 ID로 응답을 반환하지 않습니다.
Route::get('product/{id}', function($id)
{
$value = Cache::remember($id, 10, function() use ($id)
{
echo('Getting this from Shopify');
$shopify = new ShopifyLib;
return $shopify->getShopifyProduct($id);
});
var_dump($value);
});
ShopifyLib 내가 Shopify 커넥터와 통신하는 데 쓴 PHP 라이브러리입니다 :
나는이 흐름을 테스트하는 Laravel에 다음과 같은 간단한 경로를했다. 이 호출은 JSON 형식의 제품 페이지를 올바르게 반환합니다. 문제는 호출이 항상 외부에서 Shopify에 만들어지고 캐시에서 검색되지 않는다는 것입니다. 나는 다음과 같은 항목으로 데이터베이스 캐싱을 사용하고이 저장되는 :
이key : laravel172989477
value : eyJpdiI6Imw4aUwzNHN4eExwdElPWFZKXC9hdFpVRjc4ZG5pK1dYMTlJVm44a1doKzlvPSIsInZhbHVlIjoieVJ6N2J6Q1A3SGNsWG1xWFJKTUdVak5FSEtHWDZKQkd2Y2x0ZEI2dHlvcz0iLCJtYWMiOiJhNWU0OGUxOTkyNWE2NTRhNTY1ZTNhMjRlOWNhNzRjNGI1ZDIyY2YzNGM3NTVjOThhMDUyYjllZmI1OTJiZmE1In0=
expiration : 1386616552
은 $ ID가 나는이 항목은 모든 시간을 반환해야한다는 생각 때문에 변경되지 않습니다. 단지 비 캐시를 캐시에가는 미래의 모든 통화 한 시간을 호출 예상대로이 일
Route::get('product/{id}', function($id)
{
$value = Cache::remember('test', 5, function()
{
echo('Not getting this from the cache!');
return 'example';
});
var_dump($value);
});
:
내가 사용하는 간단한 예를 시도했다.
표준'has','get' 및'put' 메소드를 사용해 보셨습니까? – SamV
있습니다. 원래 나는이 세 가지 방법으로 간단한 테스트를하고 있었지만 동일한 효과가있었습니다. 나는 그 대신 하나의 방법을 사용하여 프로세스를 단순화 할 수 있음을 깨달았다. –