PHP扩展开发 - Part 1
在网上找到几篇基于PHP5的扩展开发的文章,有些古老,与PHP7不完全兼容,自己做了些简单的翻译、修改。
建议开发者先阅读PHP Internals Book这份在线文档,里面对PHP做了比较全面的讲解。由于PHP扩展开发的资料比较少,也鲜有PHP开发者触及到这块,编写扩展时如果遇到问题,最好是先查找PHP源代码是否有相关的使用案例,再通过网上论坛、QQ等方式寻求帮助。
本文是PHP扩展开发系列的第一篇,主要介绍如何开发一个简单的PHP扩展、如何获取ini配置参数、如何配置全局变量
前期准备:
PHP编译选项加入--enable-debug
以及--enable-maintainer-zts
。--enable-debug
生成额外的调试符号,并将优化等级设置为-O0
,报告内存泄露等错误,使使用gdb进行debug时更为准确;--enable-maintainer-zts
启用线程安全,开启ZTS
宏定义,配置PHP为TSRM机制,用于编写调试多线程代码
Hello World
扩展目录结构
你可能会使用PHP源代码自带的脚本ext/ext_skel.php
生成扩展骨架,但这里选择极简方式创建一个扩展,最基本的扩展只需要三个文件:配置文件config.m4
,头文件php_test.h
,源文件test.c
test
扩展目录结构
1 | php-7.4.1 |