教你如何自学PHP扩展
本篇文章以PHP7做语言的括展基础性,了解教你该怎样从零准备新建两个PHP扩充。该篇关键了解新建两个扩充的最基本步聚。举例中,各位将改变如下图所示系统:
<?php echo sayWord(); ?>
你们让下面的子程序执行工作然而为:
$ php ./test.php $ hello word
想法为在括展中体现一名sayWord工艺,资源调用该sayWord工艺后,系统软件将模拟输出:hello word。下文,我将教大家该工艺的体现步奏。
第1 步,转换成代碼
这个php为当我们能提供了比较棒的添加常规源编号的专用辅助工具ext_skel。该专用辅助工具在php源源编号的./ext文件名中间。
$ cd php_src/ext/ $ ./ext_skel --extname=sayWord
extname产品参数的值可以说是初始化命名。实施ext_skel操作命令后,这样一来在现如今的导航下能转化成一与初始化名那样的的导航。
第二个步,修改图片config.m4标准配置文件夹
config.m4的的作用即使搞好团结phpize方法转为configure程序资料。configure程序资料是于生活的环境论文检查的。论文检查扩张编译工作所要的生活的环境能不提供。现如今自己始于调整config.m4程序资料。
$ cd ./sayWord $ vim ./config.m4
打開,config.m4文件格式后,你知道挖掘这个几段图片文字。
dnl If your extension references something external, use with: dnl PHP_ARG_WITH(sayWord, for say support, dnl Make sure that the comment is aligned: dnl [ --with-sayWord Include sayWord support]) dnl Otherwise use enable: dnl PHP_ARG_ENABLE(sayWord, whether to enable say support, dnl Make sure that the comment is aligned: dnl [ --enable-sayWord Enable sayWord 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(sayWord, for sayWord support, dnl Make sure that the comment is aligned: dnl [ --with-sayWord Include sayWord support]) dnl Otherwise use enable: PHP_ARG_ENABLE(sayWord, whether to enable sayWord support, Make sure that the comment is aligned: [ --enable-sayWord Enable sayWord support])
三歩,代码是什么进行
重设sayWord.c文件名称。建立sayWord措施。
得到PHP_FUNCTION(confirm_sayWord_compiled),在其上端增多一下二维码:
PHP_FUNCTION(sayWord) { zend_string *strg; strg = strpprintf(0, "hello word"); RETURN_STR(strg); }
寻找到 PHP_FE(confirm_sayWord_compiled, 在顶端添加下面源代码:
PHP_FE(sayWord, NULL)
修改游戏后的代碼有以下:
const zend_function_entry say_functions[] = { PHP_FE(sayWord, NULL) /* For testing, remove later. */ PHP_FE(confirm_sayWord_compiled, NULL) /* For testing, remove later. */ PHP_FE_END /* Must be the last line in sayWord_functions[] */ }; /* }}} */
四号步,编译布置
编译存储的工作步骤详细:
$ phpize $ ./configure $ make && make install
修订php.ini文件名称,提高如下所示代碼:
[sayWord] extension = sayWord.so
然后呢继续执行,php -m 操作命令。在模拟输出的资源中,我还见到sayWordr标志。
第二十步,取用测试图片
自行写个php代码,资源调用sayWord方式方法。看传输的项目要不要符合要求预期想象。
网站建设首选石家庄尚途网络科技有限公司,更多网站优化,网站建设信息请关注:尚途科技,网址://chixintf.com