PHP Memcached完全向后兼容Memcache吗?

时间:2016-02-29 13:50:20

标签: php memcached

我正准备通过dotdeb存储库将Debian服务器从PHP 5.6升级到7.0。 Dotdeb repos没有(旧)Memcache包,但它们有(新)Memcached包。我使用的第三方模块依赖于Memcache。看看API,似乎Memcached库应该完全向后兼容Memcache,所以我可以这样做:

if (!class_exists('Memcache') && class_exists('Memcached')) {
    class Memcache extends Memcached
    {
    }
}

在测试中似乎有效。关于memcached文档的评论提到了at least one gotcha,但由于我不打算同时运行它们,所以这不是问题。

但是,我无法找到任何其他有关兼容性的内容。这是一种确保Memcached和Memcache之间向后兼容性的安全方法,还是需要更复杂的适配器?

2 个答案:

答案 0 :(得分:1)

我不确定PECL Memcache项目发生了什么,但基础Github项目已经更新以支持PHP7,但仍未发布任何官方容量(我也需要这样,所以我&#39我一直在关注它。)

几周前,Remi回购(CentOS / Fedora)基于这些更新发布了PECL包,看起来很稳定。如果你需要这个我建议你拉Github仓库并建立PECL扩展。没有官方发布,我唯一可以向你推荐的东西。这样您就不必破解旧班级来处理现有代码。

https://github.com/websupport-sk/pecl-memcache(非正式)
https://github.com/php/pecl-caching-memcache(官方)

答案 1 :(得分:0)

要回答我自己的问题,两者不兼容。对于任何可能遇到这个问题的人,我写了一个小垫片,它复制了Memcache API的一部分并将其传递给Memcached。它适用于download on SourceForge