2016-02-29 45 views
3

我准备通过dotdeb存储库将Debian服务器从PHP 5.6升级到7.0。 Dotdeb回购没有(旧)Memcache包,但他们确实有(新)Memcached包。我使用的第三方模块依赖于Memcache。综观这些API,似乎Memcached的图书馆应该是完全向后兼容的内存缓存,这样我就可以做到这一点:PHP Memcached是否完全向后兼容Memcache?

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

在测试它似乎工作。关于memcached文档的评论提到at least one gotcha,但由于我不想同时运行它们,所以这一个不是问题。

但是,我找不到任何其他谈到兼容性的东西。这是确保Memcached和Memcache之间向后兼容的安全方法,还是需要更复杂的适配器?

回答

0

回答我的问题,没有两个是不兼容的。对于任何可能遇到此问题的人,我编写了一个小程序,它复制了部分Memcache API并将其传递给Memcached。它可用于download on SourceForge

1

我不确定PECL Memcache项目发生了什么,但基础Github项目已更新为支持PHP7,但仍未以任何官方身份发布(我也需要这个,所以我一直在保持标签)。

几周前Remi repo(CentOS/Fedora)基于这些更新发布了一个PECL包,它看起来很稳定。如果你需要这个,我会建议你拉Github回购并建立PECL扩展。没有正式版本,我只能向你建议。这样你就不必破解老的类来处理你现有的代码。

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