我正准备通过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之间向后兼容性的安全方法,还是需要更复杂的适配器?
答案 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。