1

我们在许多不同的安装(工作站、开发和生产服务器)上使用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 捆绑)。

4

0 回答 0