2009-12-15 94 views
1

我正在考虑编写一个将使用memcached库的PHP扩展库。简单地将我的库链接到memcache shlib是微不足道的。使用memcached的PHP扩展

但是,我不知道如果我的(扩展库)的用户已经使用的memcache对他/她的网站会发生什么。我的问题是:

  1. 是否有可能(可能不同版本)的机器上的memcache?
  2. 构建扩展库时,最好静态链接或动态链接到memcache? (以迎合版本不兼容问题 - 假设内存缓存是向下兼容的,否则所有的赌注都关闭)

的问题基本上退化为如何可以一个保障,他们已经写了一个扩展库,如果有一个第三方文件的依赖哪些可能已经在扩展库将被使用的网站上使用?

的问题可以很可能会略有病态,但我希望你明白我所问的要点。

回答

4

记住,有两个内存缓存扩展PHP,一个被称为内存缓存,其他的memcached,第一个使用它自己实现的内存缓存协议,后者使用该库。

如果您正在使用的第一,你不应该有conflcit但必须照顾内存缓存的你自己。我建议建立一个依赖于memcached的扩展,并使用它找到的库。

+0

有用的信息确实Johannes。我会在这两个读取更多信息 – 2009-12-15 11:41:34

+0

所有证据都指向使用memcached(这也是你的建议)。现在关于实现 - 我可以直接调用底层C++ libmemcached库,还是需要通过PHP扩展调用memcache进行调用? (我希望不是后者) – 2009-12-15 12:17:51

+0

如果扩展被加载,库可用并且可以被调用。我有点考虑编译步骤......如果将两个扩展都构建为PHP构建的一部分,这很容易(cd php-src/ext; cp -r $ memcached /。; cp -r $ yourext; cd ..; ./buildconf; ./configure --with-memchached)....单独构建它们可能需要从memcached的config.m4中复制库检测...但我从未查看它,也许你可以要求更多关于pecl-dev [at] lists.php.net的意见 - extesnsion的维护者也应该在那里阅读 – johannes 2009-12-15 12:57:21