6

我为 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 上做了一个提案,但没有人回复邮件列表,似乎这也很常见。

所以我现在被 1 和 2 种分发方式困住了,什么是分发 PHP 扩展的最佳方式,该扩展是使用 C++ 创建的,以用户友好的方式创建且易于安装?

提前致谢,如果您对项目的结构或 phpize/configure/make 过程的完整解释有更多疑问,可以在https://github.com/djondb/djondb_phpext看到项目代码。

4

2 回答 2

3

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

于 2013-01-27T19:43:42.537 回答
2

作为维护我们公司使用的扩展的 PHP 开发人员,只提供源代码并期望用户在他们的机器上编译它是非常好的。

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

然后,只需倾听用户的意见并随时改进您的(发布)系统。

于 2013-01-27T19:49:20.290 回答