手把手写一个简单的 PHP 扩展
手把手教你写一个PHP扩展,以下通过PHP7.4版本实现,其他版本可能有差异,但整体流程相当。一、从官网下载源码包
PHP: Downloads
二、创建模块
解压源码,找到 ext 目录,通过下面命令创建一个扩展模块:
./ext_skel.php --ext mymodel
创建成功后,会有以下提示:
三、编写模块的函数
找到创建的模块路径 ext/mymodel
(1)在头文件声明函数
找到 php_mymodel.h
在这个头文件中声明了一个名为 mymodel的PHP空间的函数,在PHP的代码里就可以像普通函数一样调用:
PHP_FUNCTION(mymodel);
(2)编写函数的具体实现
找到 mymodel.c 文件
在PHP空间注册一个函数,函数名是 mymodel
PHP_FE(mymodel, NULL)
然后在文件末尾增加 mymodel 函数的具体实现
PHP_FUNCTION(mymodel) {
php_printf("hello, mymodel");
}
(3)编译安装模块
1、在 ext/mymodel 目录下执行phpize命令
phpize
2、编译安装模块
切换到 ext/mymodel 目录
./configure --enable-foobar --with-config-path=/usr/local/php/bin/php-config
如果没有报错就可以 make 安装
make && make install
安装完成后会提示扩展文件的生成路径,比如:
Installing shared extensions: /usr/local/php742/lib/php/extensions/no-debug-non-zts-20190902/
(4)修改php.ini 引入扩展文件
extension=mymodel.so
查看模块是否加载成功
php -m | grep mymodel
四、测试,验证扩展
命令行测试 mymodel 函数,可以看到输出了在扩展定义的语句
php -r "mymodel();"
页:
[1]