【问题标题】:PHP extension that uses memcached使用 memcached 的 PHP 扩展
【发布时间】:2010-08-29 23:05:29
【问题描述】:

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

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

  1. 机器上是否可以有(可能不同的版本)memcache?
  2. 在构建扩展库时,最好是静态链接还是动态链接到memcache? (为了解决版本不兼容问题 - 假设 memcache 向后兼容,否则所有赌注都关闭)

问题基本上退化为如何保护他们编写的扩展库,如果它依赖于第三方文件,而该第三方文件可能已经在使用扩展库的网站上使用?

这个问题可能有点不当,但我希望你能理解我所问的要点。

【问题讨论】:

    标签: php c++ memcached php-extension


    【解决方案1】:

    注意 PHP 有两个 memcache 扩展,一个叫做 memcache,另一个叫做 memcached,第一个使用它自己的 memcache 协议实现,后面使用这个库。

    如果您使用的是第一个,则不应有冲突,但必须自己处理 memcache。我建议构建一个依赖于 memcached 的扩展并重新使用它找到的库。

    【讨论】:

    • 确实有用的信息约翰内斯。我会阅读这两篇文章以获取更多信息
    • 所有证据都指向使用 memcached(您确实也建议使用)。现在关于实现 - 我可以直接调用底层 C++ libmemcached 库,还是需要通过 memcache 的 PHP 扩展来调用? (希望不是后者)
    • 如果加载了扩展,则库可用并且可以调用。我有点想 aobut 编译步骤...如果您将两个扩展都构建为 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 的意见 - 扩展的维护者也应该在那里阅读
    • 我的问题更多的是在运行时访问内存缓存。我将动态链接到 libmemcache,因此我可以要求我的 lib 的用户至少为 PHP 安装并启用了 xxx 版本的 memcache。我想知道我是否可以直接从我的库中调用 C 函数 - (常识建议如此 - 但你永远不知道)。不过,关于您的回复,我不能坚持让用户安装我的“专门编译的”PHP,所以我不得不假设他们使用的是普通(即基线)PHP 二进制发行版。问题是我可以直接从我的代码中调用 libmemcache 吗?
    • 是的,你可以。我不确定的是一种在编译扩展时定位标题的方法......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 2010-10-15
    • 2017-05-22
    相关资源
    最近更新 更多