什么是扩展生成器
每个 php 扩展都包含一些非常公共的并且非常单调的结构和文件,这些文件对所有扩展来说都是通用的。当开始一个新扩展开发的时候,如果这些公共的结构已经存在,而不需要费力去复制每个文件的内容, 我们只需考虑填充功能代码那心情一定会愉快很多。
扩展生成器就是实现这些功能的脚本,帮助我们完成初始化工作。PHP 源码中提供一个自带的生成器 ext_skel。他在 ext 目录下。
ext_skel
./ext_skel –help
它提示了我们脚本的命令行格式和支持的参数
./ext_skel –extname=module [–proto=file] [–stubs=file] [–xml[=file]]
[–skel=dir] [–full-xml] [–no-help]
–extname=module 扩展名称,全为小写字母的标识符,仅包含字母和下划线,保证在 php 源码 ext 目录下的文件夹名唯一
–proto=file 允许开发人员指定一个头文件,由此创建一系列 PHP 函数,表面上看就是要开发基于一个函数库的扩展,很少用
–stubs=file 仅生成文件中的函数存根,生成 IDE 提示文件可能有用
–xml generate xml documentation to be added to phpdoc-svn 没用
–skel=dir path to the skeleton directory 指定扩展骨架目录,如果你想在 ext 目录以外的地方生成,那这个有用
–full-xml generate xml documentation for a self-contained extension (not yet implemented) 没用
–no-help don’t try to be nice and create comments in the code and helper functions to test if the module compiled 去除生成测试函数和注释等内容,除非你很熟练,不建议操作
示例
/usr/local/src/php-7.2.15/ext/ext_skel –extname=twinkle_log –skel=/usr/local/src/php-7.2.15/ext/skeleton/