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);

它将生000000006c5ce27300000000564a8706.cache成为唯一 ID,但如果我重新加载页面,我会得到一个不同的 ID,这违背了缓存的目的。

如何获得对象的一致唯一 ID?

4

1 回答 1

5

您可以使用 serialize() 然后对其进行哈希处理。

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