konekto Inc with PHP , MySQL コネクト株式会社 技術情報コンテンツ


Old/Zend Performance Suite/API

ケース1:コンテンツの取得と更新を同時に行う

コンテンツを Web ブラウザに反映させる直前で、 キャッシュの取得キャッシュの有無判定キャッシュの生成の全ての処理を一括で行います。 この要件を満たすには、output_cache_output()またはoutput_cache_fetch()関数を用いると良いでしょう。

次のようにコーディングを行います。

サンプル 1-1

#phpsrc(): Usage: (attachfilename)

このサンプルは、5秒間隔で変化する現在時刻をブラウザに表示します。 現在時刻は、API 関数の第2引数で date() を実行して取得しています。 これを応用し、関数の実行結果をキャッシュするようにしたのが次のサンプルになります。

サンプル 1-2

#phpsrc(): Usage: (attachfilename)

このサンプルは、getCurrentTime() 関数を呼び出し、その結果をキャッシュしています。 サンプル 1-1と同様に、5秒間隔で内容が更新されます。

ケース2:コンテンツの出力とキャッシュの生成タイミングが違う場合

このケースは、特定のアクションが発生した時のみコンテンツが更新される場合に最適です。

次の例は、ニュース記事の投稿に合わせてキャッシュを更新すると共に、 投稿が無い限り10秒間隔でキャッシュを保持するサンプルになります。

サンプル2-1

#phpsrc(): Usage: (attachfilename)

ケース3:キャッシュがあればキャッシュを使うが、無ければDBから取得する

先程のケースでは、キャッシュが存在しない場合は自動的にキャッシュを行いましたが、 存在しない場合はDBから取得します。 キャッシュを登録するには、sample3-1.php?cache=true としてアクセスして下さい。

サンプル3-1

#phpsrc(): Usage: (attachfilename)

最終更新のRSS