基本的に、独自のキャッシュシステムを実装しています。理想的には、次のようになります。
$CACHE->start($name);
//CODE
$CACHE->end();
しかし、それは私が見つけることを望んでいない聖杯です。基本的に、$CACHE->start() はキャッシュがヒットかミスかをチェックし、ヒットした場合は $CACHE->end() まで //CODE をスキップします。
私がこれまでに行った中で最高のものは次のとおりです。
if ($CACHE->start($name)) {
//CODE
}
$CACHE->end();
PHP は無名関数をサポートしているため、次のことを考えていました。
$CACHE->make($name, function() {
//CODE
});
しかし、このコードには、コードが同じ変数スコープにないという問題があります。それを回避するチャンスはありますか?
更新:その後、ブロックを関数に渡すことができるルビーに切り替えました。このタスクに最適です。