溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何制作一個(gè)php擴(kuò)展

發(fā)布時(shí)間:2020-10-03 09:58:41 來源:網(wǎng)絡(luò) 閱讀:351 作者:a386396 欄目:web開發(fā)

博客:http://lijinhuan.blog.51cto.com/

微博:http://weibo.com/lijinhuanexperience

代碼:https://github.com/lijinhuan



一、安裝php

假如把php安裝/usr/local/php下


二、php擴(kuò)展框架工具

進(jìn)入 /php源碼/ext 目錄

執(zhí)行

./ext_skel --extname=my_module

顯示結(jié)果

Creating basic files: config.m4 config.w32 .svnignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done].


To use your new extension, you will have to execute the following steps:


1.  $ cd ..

2.  $ vi ext/my_module/config.m4

3.  $ ./buildconf

4.  $ ./configure --[with|enable]-my_module

5.  $ make

6.  $ ./sapi/cli/php -f ext/my_module/my_module.php

7.  $ vi ext/my_module/my_module.c

8.  $ make


Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and

step 6 confirms that your module is compiled into PHP. Then, start writing

code and repeat the last two steps as often as necessary.

其實(shí)這里就教了你怎么操作了

在當(dāng)前目錄再執(zhí)行 cd my_module/ 進(jìn)入我們的模塊目錄

然后我們要修改文件順序是

configue.m4

my_module.c

php_my_module.h

修改configue.m4

根據(jù)你自己的選擇將

dnl PHP_ARG_WITH(my_module, for my_module support,


dnl Make sure that the comment is aligned:

dnl [  --with-my_module             Include my_module support])


修改成

PHP_ARG_WITH(my_module, for my_module support,


Make sure that the comment is aligned:

[  --with-my_module             Include my_module support])


或者將

dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,


dnl Make sure that the comment is aligned:

dnl [  --enable-my_module           Enable my_module support])


修改成

PHP_ARG_ENABLE(my_module, whether to enable my_module support,


Make sure that the comment is aligned:


[  --enable-my_module           Enable my_module support])


其實(shí)就是去掉前面的dnl

修改my_module.c

將文件其中的下列代碼進(jìn)行修改


/* Every user visible function must have an entry in my_module_functions[].


*/

function_entry my_module_functions[] = {

PHP_FE(say_hello,       NULL)  /* ?添加著一行代碼 */


PHP_FE(confirm_my_module_compiled,      NULL) /* For testing, remove later. */


{NULL, NULL, NULL}      /* Must be the last line in my_module_functions[] */


};

在文件的最后添加下列代碼

PHP_FUNCTION(say_hello)

{

zend_printf("hello world/n");


}

修改php_my_module.h

在PHP_FUNCTION(confirm_my_module_compiled ); /* For testing, remove later. */

添加一行:

PHP_FUNCTION(say_hello); /* For testing, remove later. */

三、執(zhí)行

/usr/local/php/bin/phpize

四、編譯安裝擴(kuò)展

然后執(zhí)行./configure --enable-my_module --with-php-config=/usr/local/php/bin/php-config


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI