URIと引き数で外部から自動的にキャッシュキーがつくれ、階層構造を持つリソースはキャッシュ機構との相性が良く、簡単に効果的に使用することができます。
キャッシュはページ、リソースに指定できます。リソースを使う事の一つにキャッシュがあります。データやロジックをリソースにしておく事により、リソースの共通のキャッシュ機構を使う事ができます。
ページやリソースは階層構造を持つのでキャッシュも階層構造をもつことになります。リソースに10秒、ページに5秒のキャッシュを指定するとページの読み込みの2回に1回しかリソースの実リクエストは行われません。逆の指定をするとリソースキャッシュは使われる事はありません。(ページの取得を行うときはリソースキャッシュはかならず有効期限がきれてるためです。)
app.ymlにキャッシュアダプターを指定します。
BEAR_Cache:
# int キャッシュアダプター 0 なし | 1 PEAR::Cache_Lite | 2 MEMCACHE | 3 APC
adapter: 3
リソースキャッシュの指定はoptionに指定します。
$params = array(
'uri' => 'Post',
'options' => array('template' => 'post_editable',
'cache' => array('life' => 10)
)
)
lifeを0にして読み込むと消去されます。
ページにはonInit内のリソースリクエストの結果をキャッシュする'init'とHTML出力が含められたページ全体の'page'キャッシュがあります。
いずれの場合もUA(ユーザーエージェント)が考慮され、携帯用のページがPCで表示されることがないようになっています。