我使用以下方法从数据库生成对象:
$game = $this->game_model->get_by('slug', 'some-title');
Run Code Online (Sandbox Code Playgroud)
我也在Codeigniter中使用缓存库,我通过以下方式写入缓存文件:
$this->cache->write($game, $cache);
Run Code Online (Sandbox Code Playgroud)
其中$ game是对象,$ cache是该对象的标识符.
我想为此对象生成一个唯一ID以用作缓存名称.类似于spl_object_hash,但在后续实例中保持不变.
例如,如果我这样做:
$cache = spl_object_hash($game);
// Cache object
$this->cache->write($game, $cache);
Run Code Online (Sandbox Code Playgroud)
它将生成000000006c5ce27300000000564a8706.cache唯一ID,但如果我重新加载页面,我会得到一个不同的ID,这会破坏缓存的目的.
如何为对象获取一致的唯一ID?
小智 5
您可以使用serialize()然后哈希它.
$cache = hash('sha1', serialize($game));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
694 次 |
| 最近记录: |