現在、mvc ベースのサイトで php と apc を使用しています。これはカスタム ビルドの単純な mvc であるため、ニーズに合わせてビルドしようとしています。
ただし、キャッシュを処理するのに適した場所はどこですか?
私には2つの選択肢があります(私が思うに)..オブジェクトがキャッシュに保存されたことを意味するさまざまなコントローラーですべてのキャッシュを行うか、クエリから返されたデータをメソッド内のキャッシュに保存します。
コントローラーの例:
function showPage() {
$pageOb = new Page();
$key = md5('pageOb->getQuery()');
if(!$data = apc_fetch($key)){
$data = $pageOb->getQuery();
apc_add($key, $data, 600);
}
require 'template.php';
}
メソッドの例:
function getQuery(){
$sql = "SELECT * FROM table";
$key = md5('query'.$sql);
if(!$data = apc_fetch($key)){
$core = Connect::getInstance();
$stmt = $core->dbh->prepare($sql);
$stmt->execute();
$data = $stmt->fetchAll();
apc_add($key, $data, 600);
}
return $data;
}