成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【php 擴展開發(fā)】擴展生成器

wslongchen / 1873人閱讀

摘要:什么是擴展生成器每個擴展都包含一些非常公共的并且非常單調(diào)的結(jié)構(gòu)和文件,這些文件對所有擴展來說都是通用的。擴展生成器就是實現(xiàn)這些功能的腳本,幫助我們完成初始化工作。源碼中提供一個自帶的生成器。

什么是擴展生成器

每個php擴展都包含一些非常公共的并且非常單調(diào)的結(jié)構(gòu)和文件,這些文件對所有擴展來說都是通用的。當(dāng)開始一個新擴展開發(fā)的時候,如果這些公共的結(jié)構(gòu)已經(jīng)存在,而不需要費力去復(fù)制每個文件的內(nèi)容, 我們只需考慮填充功能代碼那心情一定會愉快很多。

擴展生成器就是實現(xiàn)這些功能的腳本,幫助我們完成初始化工作。 PHP 源碼中提供一個自帶的生成器 ext_skel。他在 ext 目錄下。

ext_skel

它是一個 shell 腳本,僅有 300 多行。我們來看下關(guān)鍵部分代碼

# 生成 config.m4 配置文件

cat >config.m4 < sedscript
echo "s/EXTNAME/$EXTNAME/g"  >> sedscript
echo "/__function_entries_here__/r function_entries"  >> sedscript
echo "/__function_stubs_here__/r function_stubs"  >> sedscript
echo "/__header_here__/r ../../header"  >> sedscript
echo "/__footer_here__/r ../../footer"  >> sedscript
echo "/__function_entries_here__/D"  >> sedscript
echo "/__function_stubs_here__/D"  >> sedscript
echo "/__header_here__/D"  >> sedscript
echo "/__footer_here__/D"  >> sedscript
if [ ! -z "$no_help" ]; then
    echo "/confirm_$extname_compiled/D" >> sedscript
    echo "/Remove the following/,/^*//D" >> sedscript
    echo "s/[[:space:]]/*.+*///" >> sedscript
    echo "s/^/*.**/$//" >> sedscript
    echo "/^[[:space:]]*/*/,/^[[:space:]]**//D" >> sedscript
fi

sed -f sedscript < $skel_dir/skeleton.c > $extname.c

幫助說明

./ext_skel --help

它提示了我們腳本的命令行格式和支持的參數(shù)

./ext_skel --extname=module [--proto=file] [--stubs=file] [--xml[=file]]
           [--skel=dir] [--full-xml] [--no-help]

  --extname=module   擴展名稱,全為小寫字母的標(biāo)識符,僅包含字母和下劃線,保證在 php 源碼 ext 目錄下的文件夾名唯一
  --proto=file       允許開發(fā)人員指定一個頭文件,由此創(chuàng)建一系列 PHP 函數(shù),表面上看就是要開發(fā)基于一個函數(shù)庫的擴展,很少用
  --stubs=file       僅生成文件中的函數(shù)存根,生成 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 去除生成測試函數(shù)和注釋等內(nèi)容,除非你很熟練,不建議操作

示例

/usr/local/src/php-7.2.15/ext/ext_skel --extname=twinkle_log --skel=/usr/local/src/php-7.2.15/ext/skeleton/

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/30947.html

相關(guān)文章

  • laravel開發(fā)擴展記錄

    摘要:自動代碼擴展開發(fā)時遵守的代碼風(fēng)格是項目開發(fā)規(guī)范。遵照此規(guī)范,在實際操作中,有許多重復(fù),接下來推薦一款專為此規(guī)范量身定制的代碼生成器??梢岳么藬U展來快速構(gòu)建項目原型。后續(xù)還會為大家?guī)硪恍┳钚碌募夹g(shù)擴展。 whoops 錯誤提示擴展 whoops 是一個非常優(yōu)秀的 PHP Debug 擴展,它能夠使你在開發(fā)中快速定位出錯的位置。laravel默認安裝。showImg(https://s...

    fancyLuo 評論0 收藏0
  • laravel開發(fā)擴展記錄

    摘要:自動代碼擴展開發(fā)時遵守的代碼風(fēng)格是項目開發(fā)規(guī)范。遵照此規(guī)范,在實際操作中,有許多重復(fù),接下來推薦一款專為此規(guī)范量身定制的代碼生成器??梢岳么藬U展來快速構(gòu)建項目原型。后續(xù)還會為大家?guī)硪恍┳钚碌募夹g(shù)擴展。 whoops 錯誤提示擴展 whoops 是一個非常優(yōu)秀的 PHP Debug 擴展,它能夠使你在開發(fā)中快速定位出錯的位置。laravel默認安裝。showImg(https://s...

    魏憲會 評論0 收藏0
  • PHP擴展開發(fā):第一個擴展

    摘要:擴展開發(fā)第一個擴展擴展開發(fā)安裝定時器在上一篇文章擴展開發(fā)安裝我們已經(jīng)將開發(fā)擴展的環(huán)境安裝成功,那么接下來采用最簡單直接的方式創(chuàng)建第一個擴展。 PHP擴展開發(fā):第一個擴展 《PHP擴展開發(fā):安裝PHP》《POSIX定時器:timer_settime() 》在上一篇文章《PHP擴展開發(fā):安裝PHP》我們已經(jīng)將開發(fā)PHP擴展的PHP環(huán)境安裝成功,那么接下來采用最簡單直接的方式創(chuàng)建第一個擴展。...

    JerryWangSAP 評論0 收藏0
  • PHP擴展開發(fā)教程1 - 相關(guān)開發(fā)技術(shù)對比及介紹

    摘要:四使用語言開發(fā)是我重點推薦的擴展開發(fā)框架,簡明易懂,功能強大,開發(fā)效率高,代碼易維護,執(zhí)行速度快。優(yōu)點三支持,的擴展開發(fā)有兩套擴展開發(fā)框架,分別支持,,雖然框架代碼有兩個,但是接口卻是一樣的。 PHP擴展是高級PHP程序員必須了解的技能之一,對于一個初入門的PHP擴展開發(fā)者,怎么才能開發(fā)一個成熟的擴展,進入PHP開發(fā)的高級領(lǐng)域呢?本系列開發(fā)教程將手把手帶您從入門進入高級階段。本教程系列...

    alaege 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<