新蒲京200.c软件下载-app官网网址 > 工具建设 >

接下去大家来汇报一下假使创设那个文件并结成起来

单身的 PHP 扩张能够独自于 PHP 源码之外举行分发。要创建二个这么的扩大,供给预备好两样东西:

  • 布置文件 (config.m4State of Qatar
  • 您的模块源码

接下去大家来说述一下假设创制那个文件并构成起来。

预备好系统工具

想要扩张能够在系统上编写翻译并成功运维,须求有备无患转以下工具:

  • GNU autoconf
  • GNU automake
  • GNU libtool
  • GNU m4

如上这一个都足以从 获取。

注:以上那么些都是类 Unix 境况下技艺接受的工具。

改装一个曾经存在的恢宏

为了呈现出创立叁个独自的扩张是超级轻松的事务,大家先将一个曾经内嵌到 PHP 的扩充改成单身扩大。安装 PHP 并且施行以下命令:

$ mkdir /tmp/newext
$ cd /tmp/newext

后天你已经有了叁个空目录。大家将 mysql 增加目录下的文书复制过来:

$ cp -rp php-4.0.X/ext/mysql/* .
# 注:看来这篇 README 真的需要更新一下了
# PHP7 中已经移除了 mysql 扩展部分

到这里扩充就实现了,推行:

$ phpize

这两天您能够单独寄放在这里个目录下的文件到其余地方,这么些扩充可以完全部独用立存在了。

客商在编写翻译时要求使用以下命令:

$ ./configure 
       [--with-php-config=/path/to/php-config] 
       [--with-mysql=MYSQL-DIR]
$ make install

如此那般 MySQL 模块就能够运用内嵌的 MySQL 顾客端库只怕已设置的放在 MySQL 目录中的 MySQL。

注:意思是说想要编写 PHP 扩张,你既要求已经安装了 PHP,也亟需下载一份 PHP 源码。

概念一个新增添

咱俩给示例扩大命名字为 “foobar”。

新扩充满含多少个能源文件:foo.c 和 bar.c(还应该有一对头文件,但那一个不仅仅主要)。

演示扩充不援用任何外界的库(这一点很关键,因为这么客商就无需极其内定一些编写翻译选项了)。

LTLIBRARY_SOURCES 选项用于钦定财富文件的名字,你能够有自由数量的财富文件。

注:上边说的是 Makefile.in 文件中的配置选项,能够仿效 xdebug。

改革 m4 后缀的布局文件

m4 配置文件可以内定一些外加的检查。对于三个独自扩大来讲,你只须要做一些宏调用就可以。

PHP_ARG_ENABLE(foobar,whether to enable foobar,
[  --enable-foobar            Enable foobar])

if test "$PHP_FOOBAR" != "no"; then
  PHP_NEW_EXTENSION(foobar, foo.c bar.c, $ext_shared)
fi

PHP_ARG_ENABLE 会自动安装好准确的变量以承保扩张能够被 PHP_NEW_EXTENSION 以分享形式运营。

PHP_NEW_EXTENSION 的首先个参数是增加的称号,第二个参数是财富文件。第四个参数 $ext_shared 是由 PHP_ARG_ENABLE/WITHPHP_NEW_EXTENSION 设定的。

请始终使用 PHP_ARG_ENABLEPHP_ARG_WITH 实行设置。固然你不希图公布你的 PHP 模块,那么些设置也足以确定保证让您的模块和 PHP 主模块的接口保持紧凑。

注:PHP_ARG_ENABLEPHP_ARG_WITH 应该是用于定义模块是动态扩张依然静态编写翻译进 PHP 中,就跟编译 PHP 时选用的 --enable-xxx--with-xxx 一样。

创制能源文件

ext_skel 可感觉你的 PHP 模块创造一些通用的代码,你也足以编写一些宗旨函数定义和 C 代码来处理函数的参数。具体消息方可查看 READNE.EXT_SKEL。

决不怀想未有范例,PHP 中有大多模块供你参照他事他说加以考察,选用八个简易的点起来,增添你本身的代码。

注:ext_skel 能够生成好宗旨模块须求的能源文件和计划文件,无需和谐创立。

改良自定义模块

将 config.m4 文本和财富文件放到同三个目录中,然后实践 phpize (PHP 4.0 以上的本子编写翻译 PHP 的时候都安装了 phpize)。

若果您的 phpize 不在系统境况变量中,你须要钦命相对路线,比方:

$ /php/bin/phpize

其一命令会自行复制必得的营造文件到当前目录并依据 config.m4 创立布局文件。

经过上述的步子,你早就有了三个独自的扩大了。

设置增添

恢宏能够因而以下命令编写翻译安装:

$ ./configure 
            [--with-php-config=/path/to/php-config]
$ make install

给模块增加分享帮忙

有的时候独立扩大需纵然分享的已供别的模块加载。接下来小编会解释什么给曾经创办好的 foo 模块加多共享协助。

  1. 在 config.m4 文件中,使用 PHP_ARG_WITH/PHP_ARG_ENABLE 来设定增添,那样就可以自行使用 --with-foo=shared[,..]--enable-foo=shared[,..] 那样的吩咐作为编写翻译参数了。
  2. 在 config.m4 文件中,使用 PHP_NEW_EXTENSION(foo,.., $ext_shared) 使扩充能够被营造。
  3. 增添以下代码到您的 C 语言资源文件中:
   #ifdef COMPILE_DL_FOO
   ZEND_GET_MODULE(foo)
   #endif

这一段讲的下边都涉及过了,这里只是又重申了弹指间。

PECL 网址约定

借使你筹划发布你的恢宏到 PECL 的网站,要求构思以下几点:

  1. 添加 LICENSE 或 COPYING 到 package.xml
  2. 亟需在强盛头文件中定义好版本音讯,这几个宏会被 foo_module_entry 调用来声称扩充版本:
   #define PHP_FOO_VERSION "1.2.3"
下一篇:没有了