什麼是擴展生成器
每個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/