有两个理由需要自己编写PHP扩展。第一个理由是:PHP需要支持一项她还未支持的技术。这通常包括包裹一些现成的C函数库,以便提供PHP接口。
例如,如果一个叫FooBase的数据库已推出市场,你需要建立一个PHP扩展帮助你从PHP里调用FooBase的C函数库。这个工作可能仅由一个人完成,然后被整个PHP社区共享(如果你愿意的话)。
第二个不是很普遍的理由是:你需要从性能或功能的原因考虑来编写一些商业逻辑。
下载php源码包: (推荐学习:PHP视频教程)
wget http://tw1.php.net/distributions/php-7.1.9.tar.gz
解压源码包 , Zend目录里面包含了PHP的Zend Engine源代码,有些函数和宏的定义我们需要在这里面简单地看一下。
ext目录里面包含了PHP原生的扩展,以及我们开发自己的扩展时可以利用的工具,Linux下使用ext_skel,Windows下使用ext_skel_win32.php
使用./ext_skel --help
./ext_skel --extname=module_name
就可以在ext目录下生成自己的扩展
config.m4配置文件
开发PHP扩展,在写C代码之前,要先配置一下这里。我们打开可以看到详细的注释说明,dnl是注释语法。
如果你的扩展用到了外部依赖,就配置–with-hello选项,否则配置–enable-hello选项,删除这下面3行的del注释
PHP_ARG_ENABLE(hello, whether to enable hello support, Make sure that the comment is aligned: [ –enable-hello Enable hello support])
PHP_ARG_WITH和PHP_ARG_ENABLE这两个宏用来配置configure选项,一个配置需要外部依赖的,另一个配置不需要外部依赖的
配置好的内容,在后面执行configure –help时可以看到。
Atas ialah kandungan terperinci 有必要php扩展开发吗. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!