2016-02-29 48 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(官方)