我们在许多不同的安装(工作站、开发和生产服务器)上使用APCu作为 PHP 的数据缓存。不幸的是,APCu API 似乎是一个移动的目标,而且几乎没有官方文档(我可以找到)。目前,我们得到了完全不同的返回值apcu_cache_info()
......
在 APCu 4.0.1 中,条目如下所示:
[
'key' => 'the_entry_key',
'atime' => 1450646021,
'ctime' => 1450646021,
'mtime' => 1450650861,
'dtime' => 0,
// ...
]
使用 APCu 4.0.7,它看起来像这样:
[
'info' => 'the_entry_key',
'access_time' => 1450650861,
'creation_time' => 1450646021,
'modification_time' => 1450646021,
'deletion_time' => 0,
// ...
]
根据GitHub 上的源代码,它现在看起来像这样:
[
'info' => 'the_entry_key',
'access_time' => 1450650861,
'creation_time' => 1450646021,
'mtime' => 1450646021,
'deletion_time' => 0,
// ...
]
过去我们看到过其他突然的 API 更改,例如何时apcu_sma_info()
必须apcu_cache_info()
使用字符串"user"
作为第一个参数来调用 - 直到它们没有。我知道这些更改在某种程度上与保持或放弃与旧 APC 扩展的兼容性有关,但很难猜测如何与 APCu 交互。
这些更改是否记录在某个地方,并带有我们可以检查的版本号?在不久的将来是否会有更多的变化?除了看到我的应用程序中断之外,我如何获得有关它们的通知?
php.net上的文档对此无话可说,项目的CHANGELOG文件也没有。PHP 更改日志也没有提到这是向后不兼容的更改(可能是因为 APCu 默认情况下未与 PHP 捆绑)。