1

ディレクトリをスキャンしてそのファイルの内容を取得するという非常にコストのかかる操作の結果をキャッシュする必要があります。

この問題を解決する良い方法は、結果をphpファイルにキャッシュすることです。phpファイルは非常に高速にロードされるため、結果の配列全体をphp有効な形式でシリアル化し、ディスクに書き込んですぐに含めることを考えていました。

私の質問は次のとおりです。キャッシュの目的でphpコードでシリアル化のタスクを実行するツール/ライブラリ/フレームワークはありますか?そうでない場合、これを達成するためのベストプラクティスは何ですか?

編集:

var_exportをありがとうJack !

このキャッシュの生成をトリガーするためにsymfonyccにコードを追加する方法についてのアイデアはありますか?

4

1 に答える 1

1

symfony のsfCacheクラスを使用します。オブジェクトを保存および取得し、さまざまなキャッシュ バックエンドを使用できます (ファイル、データベース、または APC をバックエンドとして使用できます)。

使い方は簡単です: ( APC はサーバーで既に有効になっているため、キャッシュ ストレージとして APC を使用しています。ファイルにデータを保存する場合は、sfFileCacheを使用できます)

$cache = new sfAPCCache();
if ($cache->has('data')) {
  return $cache->get('data');
} else {
  $data = calcualte_data();
  $cache->set('data',$data);
  return $data;
}
于 2013-01-22T16:36:16.760 に答える