PHP 扩展开发

PHP扩展可以在编译PHP时一起编译,也可以单独编译为共享库,共享库的像是需要将库的名称加入到PHP.ini配置中去,在pho_module_startup()阶段PHP会根据php.ini的配置将对应的扩展共享库加载到PHP中

PHP提供了几个用于简化扩展开发的脚本工具:ext_skel、phpsize、php-config

这些工具主要用来扩展的生成和编译。

ext_skel:这个脚本位于php源码的/ext目录下,它的作用是用来生成扩展的基本骨架,帮助开发者快速生成一个规范的扩展结构:

$ ./ext_skel --extname=myexttest

执行完之后在ext目录下新生成一个扩展目录,比如

---myexttest

  ------config.m4 //autoconf规则的编译配置文件

 -------config.w32 //windows环境的配置

-------CREDITS

-------EXPERIMENTAL

-------include   //依赖库的include头文件

-------myexttest.c  //扩展源码

-------php-myexttest.h  //头文件

-------myexttest.php   

这个脚本主要生成来编译需要的配置及扩展的基本结构,初步生成的这个扩展可以成功编译、安装和使用,实际开发中我们可以用这个脚本生成一个基本结构,然后根据具体的需要完善

phpsize是扩展编译必用的一个脚本,主要是操作复杂的autoconf/automake/autoheader/autolocal等系列命令,用于生成扩展的configure文件,这个就是我上上篇文章写到用的的。

总结一下编写扩展的步骤

1、通过ext目录下的ext_skel脚本生成扩展的基本扩展./ext_skel -extname

2、修改config.m4配置:设置编译配置参数、设置扩展的源代码、依赖库/函数检查等

3、编写扩展要实现的功能:按照PHP扩展的格式及PHP提供的api编写功能

4、生成configure:扩展编写完成后执行phpsize脚本生成configure及其他配置文件

5、编译&安装:./configure、make、make install 然后将扩展的.so路径添加到php.ini中

猜你喜欢

转载自www.cnblogs.com/weiluoyan/p/9031926.html