2

以下を使用して、データベースからオブジェクトを生成しています。

$game = $this->game_model->get_by('slug', 'some-title');

また、Codeigniter でキャッシュ ライブラリを使用しており、次の方法でキャッシュ ファイルに書き込みます。

$this->cache->write($game, $cache);

ここで、$game はオブジェクトで、$cache はそのオブジェクトの識別子です。

このオブジェクトの一意の ID を生成して、キャッシュ名として使用したいと考えています。spl_object_hashのようなものですが、後続のインスタンス間で同じままです。

たとえば、次のようにします。

$cache = spl_object_hash($game);

// Cache object
$this->cache->write($game, $cache);

一意の ID として生成さ000000006c5ce27300000000564a8706.cacheれますが、ページをリロードすると別の ID が取得され、キャッシュの目的が無効になります。

オブジェクトの一貫した一意の ID を取得するにはどうすればよいですか?

4

1 に答える 1

5

serialize() を使用してからハッシュすることができます。

$cache = hash('sha1', serialize($game));
于 2013-04-30T17:54:41.203 に答える