カテゴリー
PHP

PEAR Cache_Lite でコンテンツをキャッシュ

あるサイトから RSS フィードを取得してページに表示したいのですが、ページが表示されるたびに RSS フィードを取得していたのでは、ページの表示に時間がかかってしまいます。

そこで、簡単にキャッシュ システムを提供してくれる PEAR::Cache_Lite を利用することにしました。ページを表示する時に、キャッシュに表示コンテンツがあるかチェックして、なければ取得し、あればキャッシュされているものを表示します。

キャッシュには生存期間の設定ができるので便利です。

require_once "Cache/Lite.php";
define('BLOG_RSSFEED', 'https://www.northwind.mydns.jp/samples/blog/feed/');

$options = array(
  'cacheDir' => '/tmp/',
  'lifeTime' => 3600,
  'pearErrorMode' => CACHE_LITE_ERROR_DIE
);
$cache = new Cache_Lite($options);
$rss = false;

if ($xml = $cache->get(BLOG_RSSFEED))
{
  // キャッシュがヒットした !
  // キャッシュ内の XML 文字列を XMLSimpleElement として取得
  $rss = simplexml_load_string($xml);
}
else
{
  // 有効なキャッシュが見つからなかった (このRSSをを取得して保存)
  $rss = simplexml_load_file(BLOG_RSSFEED);

  if (is_bool($rss) && $rss === false)
  {
    // RSS取得エラー
  }
  else
  {
    // キャッシュにRSSをXML文字列として保存
    $cache->save($rss->asXML());
  }
}

参考:
Cache_Lite::get()
Cache_Lite::save()

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください