word达成方式详细明白_php手艺_脚本之家,PHP7扩大开采之hello

ca88会员登录中心

本文实例陈说了PHP7扩张开采之hello
word完毕方式。分享给大家供大家参谋,具体如下:

初藳出处:

此处是以PHP7作为基本功,批注怎么着从零起始成立一个PHP增添。本文主要传授创造二个扩张的基本步骤都有怎么着。示例中,大家将贯彻如下效果:

正文是以PHP7作为底蕴,疏解如何从零早先创造多个PHP扩大。本文重要教师创制八个恢弘的骨干步骤都有何样。示例中,大家将落到实处如下效果:

$ php ./test.php$ hello word
<?php
echo say();
?>

在扩张中落实八个say方法,调用say方法后,输出 hello word。

出口内容:

率先步:生成代码

$ php ./test.php
$ hello word

PHP为大家提供了变化基本代码的工具
ext_skel。那些工具在PHP源代码的./ext目录下。

在扩张中落到实处叁个say方法,调用say方法后,输出 hello word。

$ cd php_src/ext/$ ./ext_skel --extname=say

率先步:生成代码

PHP为大家提供了扭转基本代码的工具
ext_skel。那几个工具在PHP源代码的./ext目录下。

$ cd php_src/ext/
$ ./ext_skel --extname=say

extname参数的值正是扩充名称。实施ext_skel命令后,那样在当前目录下会生成四个与扩张名雷同的目录。

extname参数的值正是扩张名称。实践ext_skel命令后,那样在当前目录下会调换贰个与恢弘名形似的目录。

第二步,更改config.m4配置文件

config.m4的作用正是合营phpize工具生成configure文件。configure文件是用来遭受检查评定的。质量评定扩大编译运维所需的条件是还是不是满足。现在大家开始校订config.m4文件。

$ cd ./say
$ vim ./config.m4

开辟,config.m4文件后,你会发掘这么后生可畏段文字。

dnl If your extension references something external, use with:

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

dnl Otherwise use enable:

dnl PHP_ARG_ENABLE(say, whether to enable say support,
dnl Make sure that the comment is aligned:
dnl [  --enable-say           Enable say support])

里头,dnl
是注释符号。下面的代码说,假诺你所编纂的扩张假如依附别的的恢弘可能lib库,需求去掉PHP_ARG_WITH相关代码的评释。不然,去掉
PHP_ARG_ENABLE
相关代码段的注明。我们编辑的恢弘无需依据别的的恢宏和lib库。由此,大家去掉PHP_ARG_ENABLE前边的注明。去掉注释后的代码如下:

dnl If your extension references something external, use with:

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

 dnl Otherwise use enable:

 PHP_ARG_ENABLE(say, whether to enable say support,
 Make sure that the comment is aligned:
 [  --enable-say           Enable say support])

其次步,改善config.m4配置文件

其三步,代码完毕

修改say.c文件。实现say方法。
找到PHP_FUNCTION(confirm_say_compiled),在其上边扩充如下代码:

PHP_FUNCTION(say)
{
        zend_string *strg;
        strg = strpprintf(0, "hello word");
        RETURN_STR(strg);
}

找到 PHP_FE(confirm_say_compiled, 在上头扩展如下代码:

PHP_FE(say, NULL)

改革后的代码如下:

const zend_function_entry say_functions[] = {
     PHP_FE(say, NULL)       /* For testing, remove later. */
     PHP_FE(confirm_say_compiled,    NULL)       /* For testing, remove later. */
     PHP_FE_END  /* Must be the last line in say_functions[] */
 };
 /* }}} */

config.m4的功用就是协作phpize工具生成configure文件。configure文件是用以景况检查测量检验的。检验扩展编写翻译运维所需的情状是或不是满意。现在大家伊始修改config.m4文件。

第四步,编写翻译安装

编写翻译扩展的步子如下:

$ phpize
$ ./configure
$ make && make install

纠正php.ini文件,扩张如下代码:

[say]
extension = say.so

然后实施,php -m 命令。在输出的内容中,你会看出say字样。

$ cd ./say$ vim ./config.m4

第五步,调用测量试验

友善写叁个剧本,调用say方法。看输出的剧情是不是合乎预期。

开采,config.m4文件后,你会开采那样意气风发段文字。

全部代码下载

形齐天羽码下载

dnl If your extension references something external, use with:dnl PHP_ARG_WITH(say, for say support,dnl Make sure that the comment is aligned:dnl [ --with-say Include say support])dnl Otherwise use enable:dnl PHP_ARG_ENABLE(say, whether to enable say support,dnl Make sure that the comment is aligned:dnl [ --enable-say Enable say support])

当中,dnl
是注释符号。上边的代码说,纵然你所编纂的扩大假如依靠其它的扩张只怕lib库,须要去掉PHP_ARG_WITH相关代码的申明。否则,去掉
PHP_ARG_ENABLE
相关代码段的注脚。大家编辑的扩张没有必要依附其余的扩大和lib库。因而,大家去掉PHP_ARG_ENABLE前边的评释。去掉注释后的代码如下:

dnl If your extension references something external, use with: dnl PHP_ARG_WITH(say, for say support, dnl Make sure that the comment is aligned: dnl [ --with-say Include say support]) dnl Otherwise use enable: PHP_ARG_ENABLE(say, whether to enable say support, Make sure that the comment is aligned: [ --enable-say Enable say support])

其三步,代码完结

修改say.c文件。实现say方法。找到PHP_FUNCTION,在其上边扩展如下代码:

PHP_FUNCTION{ zend_string *strg; strg = strpprintf; RETURN_STR;}

找到 PHP_FE(confirm_say_compiled, 在地方扩充如下代码:

PHP_FE

const zend_function_entry say_functions[] = { PHP_FE /* For testing, remove later. */ PHP_FE(confirm_say_compiled, NULL) /* For testing, remove later. */ PHP_FE_END /* Must be the last line in say_functions[] */ }; /* }}} */

第四步,编写翻译安装

$ phpize$ ./configure$ make && make install

修改php.ini文件,扩大如下代码:

[say]extension = say.so

下一场执行,php -m 命令。在输出的内容中,你会看出say字样。

第五步,调用测量检验

团结写叁个本子,调用say方法。看输出的内容是不是适合预期。

越来越多关于PHP相关内容感兴趣的读者可查阅本站专项论题:《PHP扩大开辟教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》、《PHP网络编制程序手艺总计》及《php斗数据库操作本事汇总》

指望本文所述对大家PHP程序设计有所帮忙。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图