摘要:假設(shè)需求開發(fā)一個(gè)叫做的擴(kuò)展。擴(kuò)展里有一個(gè)函數(shù),。完成上面的步驟,簡(jiǎn)單的擴(kuò)展就了。如果大家需要擴(kuò)展包,可以關(guān)注微信公眾號(hào)。作者后端開發(fā)者提供相關(guān)技術(shù)服務(wù)自己懂的知識(shí)。
假設(shè)需求
開發(fā)一個(gè)叫做 helloWord 的擴(kuò)展。
擴(kuò)展里有一個(gè)函數(shù),helloWord()。
echo helloWord("Tom"); //返回:Hello World: Tom
本地環(huán)境
PHP版本:5.6.9
系統(tǒng):Linux CentOS release 6.5 (Final)
最終效果
實(shí)現(xiàn)流程
第一步:
進(jìn)入到本地的php目錄執(zhí)行: cd /root/soft/src/php-5.6.9 cd ext ./ext_skel --extname=helloWord cd helloWord vi config.m4 搜索:dnl Otherwise use enable 將下面修改成: PHP_ARG_ENABLE(helloWorld, whether to enable helloWorld support, [ --enable-helloWorld Enable helloWorld support]) if test "$PHP_HELLOWORLD" != "no"; then ...
如圖:
第二步:
vi php_helloWorld.h 搜索:extern zend_module_entry 新增一行: PHP_FUNCTION(helloWorld);
如圖:
第三步:
vi helloWorld.c 搜索:const zend_function_entry helloWorld_functions[] 新增一行: PHP_FE(helloWorld, NULL)
如圖:
搜索:PHP_MINFO_FUNCTION(helloWorld) 新增版本、作者信息 php_info_print_table_row(2, "Version", "1.0"); php_info_print_table_row(2, "Author", "BiHu");
如圖:
在 helloWorld.c 底部新增一個(gè)方法 PHP_FUNCTION(helloWorld) { char *arg = NULL; int arg_len, len; char *strg; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) { return; } len = spprintf(&strg, 0, "Hello World: %s", arg); RETURN_STRINGL(strg, len, 0); }
如圖:
第四步:
//編譯安裝 cd /root/soft/src/php-5.6.9/ext /usr/local/php/bin/phpize #用phpize生成configure配置文件 ./configure --with-php-config=/usr/local/php/bin/php-config #配置 make #編譯 make install #安裝
第五步:
//修改php.ini extension="helloWorld.so" #名稱為安裝擴(kuò)展的名稱
第六步:
重啟環(huán)境。
完成上面的步驟,簡(jiǎn)單的 helloWorld 擴(kuò)展就OK了。
大家可以根據(jù)自己的需求,開發(fā)滿足自己的擴(kuò)展。
比如,可以開發(fā)一些擴(kuò)展類,擴(kuò)展方法,等等。
如果大家需要helloWorld擴(kuò)展包,可以關(guān)注微信公眾號(hào)。
回復(fù) “helloWorld” 即可。
Thanks ~
作者:PHP后端開發(fā)者
提供PHP相關(guān)技術(shù)服務(wù)(自己懂的知識(shí))。
QQ交流群:564557094。
關(guān)注微信公眾號(hào),留言即可,看到留言后會(huì)及時(shí)回復(fù)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/30574.html
摘要:在網(wǎng)站對(duì)性能有很高要求的情況下,使用中的庫(kù)或者自己實(shí)現(xiàn)擴(kuò)展,是很好的選擇。的擴(kuò)展,可以使用命令來安裝,我主要分享下編譯安裝首先到的網(wǎng)站,找到自己需要的擴(kuò)展包,下載到本地,解壓之,比如解壓后的路徑是進(jìn)入擴(kuò)展源碼的目錄,。 PECL是PHP的高性能C擴(kuò)展,比如當(dāng)前很火熱的擴(kuò)展YAF,就是 鳥哥 編寫的一個(gè)PECL的PHP框架,性能相當(dāng)出色。 在網(wǎng)站對(duì)性能有很高要求的情況下,使用PECL中的...
摘要:進(jìn)入解壓文件之后利用工具生成利用編譯安裝包可以使用命令查看位置可以看到位置編譯安裝完成之后可以看到說明擴(kuò)展已經(jīng)安裝成功了,接下來改的配置文件。 redis的安裝 1.服務(wù)器的環(huán)境 linux / CentOS release 6.5 (Final) 可以用 cat /etc/redhat-release 命令查看系統(tǒng)版本 2.下載redis(我用的是2.8.13的版本)可自己在官網(wǎng)下...
摘要:進(jìn)入解壓文件之后利用工具生成利用編譯安裝包可以使用命令查看位置可以看到位置編譯安裝完成之后可以看到說明擴(kuò)展已經(jīng)安裝成功了,接下來改的配置文件。 redis的安裝 1.服務(wù)器的環(huán)境 linux / CentOS release 6.5 (Final) 可以用 cat /etc/redhat-release 命令查看系統(tǒng)版本 2.下載redis(我用的是2.8.13的版本)可自己在官網(wǎng)下...
閱讀 2089·2021-11-23 09:51
閱讀 3697·2021-10-20 13:49
閱讀 1706·2021-09-06 15:13
閱讀 1816·2021-09-06 15:02
閱讀 3154·2021-09-02 15:11
閱讀 890·2019-08-29 15:37
閱讀 1732·2019-08-29 13:24
閱讀 2274·2019-08-29 11:28