PHP 同事们:
这个问题涉及使用 Laravel 缓存的最佳实践。
中心目标是为了减少所有通常与性能有关的原因而对数据库的访问次数。该应用程序是一个读取密集型新闻网站,最多可能有一打控制器,主要是资源类型。
是否有关于应用程序设计的任何记录的最佳实践?我认为很明显,由于 Cache:: 是一个单行语句,将其放入控制器很容易——返回缓存数据或调用模型并缓存结果。当请求更新模型时,无效化缓存(可能会进行急切的重新加载)。但这是一个好习惯吗?
以下是在控制器中执行此操作的第一个示例:
/**
* Retrieve listing of the gallery resource.
*
* @uses GET /gallery to return all image_collections.
*
* @param int $id The gallery id
*
* @return Response - Contains a HTTP code and a list of articles.
*/
public function index()
{
$response_data = array();
$response_code = 200;
// TRY TO RETURN A CACHED RESPONSE
$cache_key = "gallery_index";
$response_data = Cache::get($cache_key, null);
// IF NO CACHED RESPONSE, QUERY THE DATABASE
if (!$response_data) {
try {
$response_data['items'] = $this->gallery->all();
Cache::put($cache_key, $response_data, Config::get('app.gallery_cache_minutes'));
} catch (PDOException $ex) {
$response_code = 500;
$response_data['error'] = ErrorReporter::raiseError($ex->getCode());
}
}
return Response::json($response_data, $response_code);
}
我听说过可以使用Laravel路由过滤器来缓存响应,但我还无法完全理解这个想法。
有什么想法?参考资料?示例吗?
感谢大家,
Ray