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

資訊專欄INFORMATION COLUMN

PHP擴展開發(fā):第一個擴展

JerryWangSAP / 1711人閱讀

摘要:擴展開發(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)建第一個擴展。

我們先假設(shè)業(yè)務(wù)場景,是需要有這么一個擴展,提供一個叫ccvita_string的函數(shù),他的主要作用是返回一段字符。(這個業(yè)務(wù)場景實在太假,大家就這么看看吧)對應(yīng)的PHP代碼可能是這樣:

function ccvita_string($str){

 $result = "Link";
 return $result;

}
第一步,生成代碼
PHP為了擴展開發(fā)的方便,提供了一個類似代碼生成器的工具ext_skel,具體可以參見說明。
首先我們創(chuàng)建一個文件ccvita.skel,它的內(nèi)容為

string ccvita_string(string str)

就是告訴ext_skel這個東西,我們要做的擴展里面有個函數(shù)叫ccvita_string。然后執(zhí)行
cd MooENV/src/php-5.3.8/ext/
./ext_skel --extname=ccvita --proto=ccvita.skel
cd ccvita/

這時候,ccvita這個擴展的代碼框架就已經(jīng)出來了。
第二步,修改配置
然后修改config.m4文件將10、11、12三行最前面的dnl刪除掉,就是將

dnl PHP_ARG_WITH(ccvita, for ccvita support,
dnl Make sure that the comment is aligned:
dnl [ --with-ccvita Include ccvita support])

修改為
PHP_ARG_WITH(ccvita, for ccvita support,
Make sure that the comment is aligned:
[ --with-ccvita Include ccvita support])
第三步,實現(xiàn)功能
修改源碼ccvita.c文件
找到將ccvita_string這個函數(shù)修改為

PHP_FUNCTION(ccvita_string)
{

char *str = NULL;
int argc = ZEND_NUM_ARGS();
int str_len;
char *result;

if (zend_parse_parameters(argc TSRMLS_CC, "s", &str, &str_len) == FAILURE) 
    return;

str_len = spprintf(&result, 0, "Link", str);
RETURN_STRINGL(result, str_len, 0); 

}
第四步,編譯擴展
保存后,開始編譯

/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
第五步,添加擴展
這時候,一切順利的話,該擴展已經(jīng)在modules/ccvita.so這個位置了。下面就是將這個擴展加入到PHP中去,讓我們PHP程序可以調(diào)用到。

cp modules/ccvita.so /usr/local/php/ext/
vim /usr/local/php/etc/php.ini
extension=/usr/local/php/ext/ccvita.so #在php.ini文件最后增加這一行
service php-fpm restart #重啟PHP服務(wù)
cp ccvita.php /data/www/wwwroot/default/
接下來就可以訪問ccvita.php這個文件,測試擴展了。下一篇,將會涉及一些更深入的內(nèi)容。

相關(guān)代碼,可以在我的github上clone出來,地址:https://github.com/KimiChen/P...

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

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

相關(guān)文章

  • PHP擴展開發(fā)教程2 - 編寫一個擴展 hello world

    摘要:二下載第一個擴展第一個擴展的源碼已經(jīng)在上準(zhǔn)備好了,直接用命令克隆,或者手工下載都可以。第四步確認擴展已經(jīng)安裝成功使用命令可以查看目前已經(jīng)安裝的所有擴展。 PHP擴展是高級PHP程序員必須了解的技能之一,對于一個初入門的PHP擴展開發(fā)者,怎么才能開發(fā)一個成熟的擴展,進入PHP開發(fā)的高級領(lǐng)域呢?本系列開發(fā)教程將手把手帶您從入門進入高級階段。本教程系列在linux下面開發(fā)(推薦使用cento...

    Berwin 評論0 收藏0
  • PHP擴展開發(fā)(一) - 構(gòu)建一個PHP擴展

    摘要:例如,這里要創(chuàng)建一個名為的擴展現(xiàn)在,在目錄下出現(xiàn)了一個新建的擴展目錄這時,該擴展是無法編譯通過的,需要先編輯文件才行。 首先需要確定系統(tǒng)中安裝了gcc編譯器,合適版本的bison等,下面是從源碼編譯安裝PHP需要執(zhí)行的基本命令: # cd php-src # ./buildconf # ./configure --enable-debug --enable-maintainer-zts...

    dongxiawu 評論0 收藏0
  • 如何基于 PHP-X 快速開發(fā)一個 PHP 擴展

    摘要:這里看到,表明你的擴展已經(jīng)加載成功了,現(xiàn)在就可以調(diào)用這個擴展函數(shù)了。是不是很簡單更多上面的例子還比較簡單,只是編寫了一個擴展函數(shù)。 PHP-X是我在2017年年初創(chuàng)建的一個新項目。這個項目的目標(biāo)就是讓有一定工作經(jīng)驗的PHP程序都能夠具備擴展開發(fā)的能力。 0x00 初衷 從2012年開始編寫swoole,現(xiàn)在算來已經(jīng)有5個年頭了。我發(fā)現(xiàn)編寫一個 PHP 擴展這個工作非常艱難。PHP 程序...

    callmewhy 評論0 收藏0
  • 使用 Zephir 輕松構(gòu)建 PHP 擴展

    摘要:簡介通過擴展,我們可以在代碼中使用一些特定的方法大部分的擴展都是用寫的。這個目錄與我們的擴展同名。我們先來在擴展中創(chuàng)建一個類,使用此類來渲染。接下來命令行執(zhí)行以下命令來編譯擴展第一次運行以上命令時,會初始化一些東西。 showImg(https://segmentfault.com/img/remote/1460000018698586); 簡介: 通過 PHP 擴展, 我們可以在 p...

    gaosboy 評論0 收藏0
  • 騰訊與閱文技術(shù)合作 微服務(wù)框架Tars再添PHP

    摘要:引言作為由騰訊公司開源的優(yōu)秀框架與服務(wù)部署運維解決方案,被閱文集團引入了實際實踐中,同時閱文集團對在語言層面進行了能力的補全,令如虎添翼。作為騰訊公司的優(yōu)秀框架與服務(wù)部署運維解決方案,可以滿足上述的所有需求。 梁晨(Ted),任職閱文集團技術(shù)中心,負責(zé)起點中文網(wǎng)的WEB后臺開發(fā)工作。曾負責(zé)騰訊上海企業(yè)產(chǎn)品部營銷QQWeb后臺開發(fā)、QQ公眾號Web后臺開發(fā),對大型網(wǎng)站技術(shù)架構(gòu),有自己的經(jīng)...

    yanwei 評論0 收藏0

發(fā)表評論

0條評論

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