欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂PHP培訓(xùn)之PHP7擴(kuò)展開發(fā)方法詳解

2018-01-25 13:58:05 1514瀏覽

今天扣丁學(xué)堂給大家介紹一下關(guān)于從零開始創(chuàng)建一個(gè)PHP擴(kuò)展,開發(fā)環(huán)境為php7,實(shí)現(xiàn)一個(gè)自定義函數(shù)say_hi,調(diào)用此函數(shù)返回HelloWorld。下面我們一起來看一下吧。



一生成代碼

PHP提供了生成基本代碼的工具ext_skel,這個(gè)工具在PHP源代碼的./ext目錄下

$cdphp_src/ext/

$./ext_skel--extname=say_hi

extname參數(shù)的值就是擴(kuò)展名稱,執(zhí)行ext_skel命令后,會(huì)在當(dāng)前目錄下會(huì)生成一個(gè)與擴(kuò)展名一樣的目錄。

二修改config.m4配置文件

config.m4的作用是配合phpize工具生成configure文件(onfigure文件是用于檢測(cè)擴(kuò)展編譯運(yùn)行所需的環(huán)境是否滿足),現(xiàn)在開始修改config.m4文件

$cd./say_hi

$vim./config.m4

config.m4文件有這樣一段文字

dnlIfyourextensionreferencessomethingexternal,usewith:

dnlPHP_ARG_WITH(say,forsaysupport,

dnlMakesurethatthecommentisaligned:

dnl[--with-sayIncludesaysupport])

dnlOtherwiseuseenable:

dnlPHP_ARG_ENABLE(say,whethertoenablesaysupport,

dnlMakesurethatthecommentisaligned:

dnl[--enable-sayEnablesaysupport])

其中,dnl是注釋符號(hào),上面的代碼意思是如果你所編寫的擴(kuò)展依賴其它的擴(kuò)展或者lib庫,需要去掉PHP_ARG_WITH相關(guān)代碼的注釋。否則,去掉PHP_ARG_ENABLE相關(guān)代碼段的注釋。我們編寫的擴(kuò)展不需要依賴其他的擴(kuò)展和lib庫。因此,我們?nèi)サ鬚HP_ARG_ENABLE前面的注釋。去掉注釋后的代碼如下:

dnlIfyourextensionreferencessomethingexternal,usewith:

dnlPHP_ARG_WITH(say,forsaysupport,

dnlMakesurethatthecommentisaligned:

dnl[--with-sayIncludesaysupport])

dnlOtherwiseuseenable:

PHP_ARG_ENABLE(say,whethertoenablesaysupport,

Makesurethatthecommentisaligned:

[--enable-sayEnablesaysupport])

三實(shí)現(xiàn)擴(kuò)展方法

修改say_hi.c文件來實(shí)現(xiàn)say_hi方法,找到PHP_FUNCTION(confirm_say_hi_compiled),在其上面增加如下代碼:

PHP_FUNCTION(say_hi)

{

zend_string*strg;

strg=strpprintf(0,"HelloWorld");

RETURN_STR(strg);

}

找到PHP_FE(confirm_say_hi_compiled,NULL),在上面增加如下代碼:

PHP_FE(say_hi,NULL)

修改后的代碼如下:

constzend_function_entrysay_functions[]={

PHP_FE(say_hi,NULL)

PHP_FE(confirm_say_hi_compiled,NULL)/*Fortesting,removelater.*/

PHP_FE_END/*Mustbethelastlineinsay_functions[]*/

};

/*}}}*/

四編譯安裝寫好的擴(kuò)展

$phpize

$./configure

$make&&makeinstall

修改php.ini文件,增加如下代碼:

extension=say_hi.so

然后執(zhí)行php-m命令查看已安裝擴(kuò)展,在輸出的內(nèi)容中如果有say_hi則說明安裝成功

五測(cè)試

寫一個(gè)腳本test.php,假如放在home目錄,內(nèi)容如下:

echosay_hi();

然后執(zhí)行:

php~/test.php

輸出HelloWorld,擴(kuò)展編寫成功

以上就是關(guān)于扣丁學(xué)堂PHP培訓(xùn)之PHP7擴(kuò)展開發(fā)方法的詳細(xì)介紹,最后想要了解更多關(guān)于PHP開發(fā)發(fā)展前景趨勢(shì),請(qǐng)關(guān)注扣丁學(xué)堂官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育平臺(tái)為您提供權(quán)威的PHP視頻教程系統(tǒng),通過千鋒扣丁學(xué)堂金牌講師在線錄制的一套PHP視頻教程課程,讓你快速掌握PHP從入門到精通開發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂PHP技術(shù)交流群:374332265。



扣丁學(xué)堂微信公眾號(hào)



關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料



查看更多關(guān)于“php培訓(xùn)資訊的相關(guān)文章>>

標(biāo)簽: PHP培訓(xùn) PHP視頻教程 PHP從入門到精通 PHP學(xué)習(xí)路線圖 PHP開發(fā)工程師

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部