【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 提示檔案可能有用 --xmlgenerate xml documentation to be added to phpdoc-svn 沒用 --skel=dirpath to the skeleton directory 指定擴充套件骨架目錄,如果你想在 ext 目錄以外的地方生成,那這個有用 --full-xmlgenerate xml documentation for a self-contained extension (not yet implemented) 沒用 --no-helpdon'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/