生成 PHP 扩展骨架

编写一个基本的 PHP 扩展并不难。只需创建几个文件。您可以手动创建,也可以使用 ext_skel.php 脚本:

$ php php-src/ext/ext_skel.php --ext test --dir .
$ php-src/ext/ext_skel --skel=/path/to/php/ext/skeleton --extname=test

遗憾的是,该脚本不随 PHP 二进制版本一起发布,只在源代码发布中提供。这将创建包含扩展骨架文件的目录 test。让我们看看里面的内容:

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

在上述代码片段中:

  • config.m4phpizebuildconf 使用的扩展配置脚本,用于在 configure 命令中添加扩展配置选项。

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

  • php_test.h 是一个 C 语言头文件,包含我们常用的扩展定义。对于只有一个源 C 文件的简单扩展来说,它不是必需的,但在实现扩展的文件较少的情况下,它还是很有用的。

  • test.c 是主要的扩展实现源文件。它定义了将扩展插入 PHP 的所有结构,并提供了所有内部函数、类和常量。

  • tests 指的是包含 PHP 测试的目录。我们将在稍后回顾它们。