Laravel - 自缓存以来经过了多长时间

时间:2014-02-19 08:17:27

标签: caching laravel laravel-4

假设我使用remember函数将数据存储在缓存中。

当用户在网站上时,我希望他能够知道他看到的数据有多久。因此,如果他不喜欢旧数据,他可以选择获取新数据。

有一件事 - 我可以尝试检查缓存的文件日期,但我不确定如何制作文件夹结构和文件名。可以尝试通过检查缓存如何工作来理解,但也许有一些事情吗?我没找到。

2 个答案:

答案 0 :(得分:0)

/**
 * Get the full path for the given cache key.
 *
 * @param  string  $key
 * @return string
 */
protected function path($key)
{
    $parts = array_slice(str_split($hash = md5($key), 2), 0, 2);

    //return $this->directory.'/'.join('/', $parts).'/'.$hash;
    return Config::get('cache.path') .'/'.join('/', $parts).'/'.$hash;
}


public function getTest() {

    $users = DB::table('shops')->remember(1, 'key')->get();

    echo 'Now: ' . date('H:i:s') . '<br>';
    echo 'Cache saved at: ' . date('H:i:s', filemtime($this->path('key'))) . '<br>';

}

从FileStore.php文件复制和编辑path()函数。我更好的方法是扩展这个,但我不知道如何。如果有人告诉我们会好的。

答案 1 :(得分:0)

对于 Laravel 5:

$parts = array_slice(str_split($hash = sha1($cacheKey), 2), 0, 2);
$path = storage_path('framework/cache/data').'/'.implode('/', $parts).'/'.$hash;