Categories: PHP编程

如何生成PHP扩展编写的基本框架?

编写基本的PHP扩展并不是太困难。您只需要创建几个文件。您可以手动执行此操作,但也可以使用“ ext_skel.php”脚本:

下载PHP源码

$ wget https://www.php.net/distributions/php-7.4.7.tar.gz
$ tar zxvf php-7.4.7.tar.gz

执行ext_skel.php生成扩展模板

php php-7.4.7/ext/ext_skel.php --ext test --dir .

不幸的是,该脚本未随二进制PHP构建一起分发,仅在源代码分发中可用。这将创建带有扩展框架文件的目录“ test”。让我们看看里面:

$ cd test$ ls
config.m4 config.w32 php_test.h test.c tests

文件说明如下

  • config.m4是一个扩展配置脚本,由“phpize”或“buildconf”用于向“configure”命令添加扩展配置选项。

  • config.w32是Windows构建系统的一个类似配置文件,将在本博客的后面讨论。

  • php_test.h是一个C头文件,其中包含我们常用的扩展定义。对于带有单源C文件的简单扩展来说,这是不必要的,但是在实现分布在少数文件的情况下,这很有用。

  • test.c是主要的扩展实现源。它定义了所有的结构,这些结构允许将扩展插入到PHP中,并使它们的所有内部函数、类和常量可用。

  • tests是指包含PHP测试的目录。

参考资料

https://www.zend.com/generating-php-extension-skeleton

4.0
01
什么是领域驱动设计?
php速查手册
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

Replit是一个强大的在线集成AI开发环境

Replit是一个强大的在线集…

16分钟 ago

AutoLink一款SEO策略AI优化工具

AutoLink AI为内部链…

23分钟 ago

wordpress侧边栏酷炫倒计时小工具

每个WordPress站点都值…

52分钟 ago

如何在Linux中根据修改日期和时间查找和排序文件

习惯于使用图形用户界面的人可以…

22小时 ago

Golang中如何实现PHP中array_fill函数?

PHP中的array_fill…

24小时 ago