分发用C编写的PHP扩展的最简单方法是什么

时间:2013-01-27 18:37:38

标签: php c++ wrapper php-extension

我为djondb创建了一个扩展,它是一个C ++库的包装器,我编译了它,可以从djondb网站下载,我不是PHP的专家,而且我已经有了一些分发的问题,主要是我意识到我需要为每个平台做每个编译并为每个平台创建一个安装程序,这很费时,我想要的是分配源代码并允许用户将其安装在最简单的方法,

我已经尝试过:

  1. 使用phpize,configure,make,sudo make install用户可以在Linux和Mac上轻松安装库,这个问题是用户需要在他们的计算机上安装g ++,make等,而这个过程安装在Windows上不起作用。
  2. 为每个平台(Linux x86,x64,Mac,Windows等)编译,并将每个tar.gz上传到站点,用户下载并将每个文件放在正确的文件夹中。这里的问题是配置过于手动,用户往往会错过一些步骤,而且用户不友好。另一个问题是我需要使用虚拟机编译每个版本,这很费时间。 (现在我要包含PHP 5.3和5.4的版本,这意味着要创建所有二进制文件的8个虚拟机)
  3. 我试图在PEAR上创建一个帐户,但注册屏幕总是说我不需要一个帐户用于我正在创建的目的...(似乎这是PEAR系统中的常见问题,但没有找到如何创建帐户提出方案)。
  4. 在PECL上提出了一个提案,但没有人回复邮件列表,似乎也很常见。
  5. 所以我现在停留在分发1和2的方式,分发使用C ++以用户友好的方式创建并易于安装的PHP扩展的最佳方式是什么?

    在此之前,如果您对项目的结构方式或phpize / configure / make过程的完整说明有更多疑问,可以在https://github.com/djondb/djondb_phpext查看项目代码。

2 个答案:

答案 0 :(得分:3)

走中间道路:为Linux / OS X用户分发源代码,这些用户可以自行构建,并为Windows用户提供已编译的DLL。这至少会限制您需要编译的版本数量。

答案 1 :(得分:2)

作为维护我们在公司中使用的扩展的PHP开发人员,仅提供源代码并期望用户在其计算机上编译它是完美的。

如果你想变得更好,为你自己支持的每台机器编译一个版本,也是一种可接受的方式(例如参见Zend),并将它留在易于下载的地方(如sourceforge / github等)。

然后,只需随时收听用户并改进(发布)系统。