【php 扩展开发】扩展生成器

什么是扩展生成器

每个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/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章