我正在使用Laravel 4與PHP Shopify連接器一起使用。我試圖限制通過在首次需要時緩存特定產品頁面來檢索Shopify產品的呼叫。Laravel 4 Cache :: remember永遠不會返回給定ID的響應
我提出了以下簡單路線在Laravel測試此流程:
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是一個PHP庫我寫與Shopify連接器進行通信。該調用會以正確的時間正確返回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
我有。最初我正在用這3種方法做一個簡單的測試,但它具有相同的效果。然後我意識到我可以用一種方法來簡化流程。 –