【发布时间】:2014-07-06 19:35:21
【问题描述】:
我使用 C++ 创建了一个 PHP 扩展。我想以二进制形式将我的扩展发送给我的客户。这意味着我需要为每个 PHP 版本(5.2、5.3、5.4、5.5)和每个处理器架构构建一个单独的版本。
我的问题是:
为什么他们不断更新 API 时间戳,而 API 本身似乎没有改变?在升级您的系统以使用下一版本的 PHP 时,它不会消除很多麻烦吗?只是为了比较,我还有一个使用 XLL API 的 MS Excel 扩展版本,并且该 API 自 2003 年以来一直保持向后兼容,这使我的所有客户只有两个二进制文件(32 位和 64 位)。
有没有办法解决这个问题? IE。有没有办法构建一个可以在多个 PHP 版本中运行的 PHP 扩展?
【问题讨论】:
-
有一个简单的解决方案:不要将其作为二进制文件分发。这也将使人们安装起来更加合理。除非您为一家受信任的大型软件公司工作,否则我当然不会在不知道它不包含任何内容的情况下使用二进制 PHP 扩展,例如,将所有用户名/密码条目发送回我的服务器服务器...
-
我同意@Mats - 创建一个您的客户可以运行的 make 包。如果这不可能,您可以创建一个自动构建系统,为每个架构和版本交叉编译,并将二进制文件推送到您的下载站点。
-
@halfer,您能否详细说明我将如何创建这样一个系统?这会涉及在构建机器上安装多个 php5-dev 版本吗?顺便说一句,我正在(并为)Linux 上构建。
-
是什么让您认为“API 没有改变”?您所描述的版本发生了一些相当重大的变化。
-
这是我的猜测,显然是错误的。无论如何,我对我的问题的“为什么”部分不太感兴趣,但我很想听听任何关于解决这个问题的建议。在这一点上,我的“交叉编译器”由几个虚拟机组成,每个虚拟机带有 Debian 6 和 7 的两个位。关于如何以全自动方式完成此操作的任何想法?