加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP7扩展开发教程之Hello World实现方法示例

发布时间:2021-03-01 14:27:54 所属栏目:编程 来源:网络整理
导读:本篇章节讲授PHP7扩睁开拓教程之Hello World实现要领。供各人参考研究详细如下: 一、下载PHP源代码 要开拓PHP扩展,必要先下载PHP的源代码,一方面是由于我们的扩展一样平常会用到PHP自身界说的函数和宏,另一方面我们可以操作官方提供的器材镌汰事变

本篇章节讲授PHP7扩睁开拓教程之Hello World实现要领。分享给各人供各人参考,详细如下:

一、下载PHP源代码

要开拓PHP扩展,必要先下载PHP的源代码,一方面是由于我们的扩展一样平常会用到PHP自身界说的函数和宏,另一方面我们可以操作官方提供的器材镌汰事变量。

我下载了PHP-7.0.2,地点是:http://cn2.php.net/get/php-7.0.2.tar.gz。

解压源码压缩包, tar xzf php-7.0.2.tar.gz,我们此刻只必要存眷Zend和ext这两个目次。

Zend目次内里包括了PHP的Zend Engine源代码,有些函数和宏的界说我们必要在这内里简朴地看一下。

ext目次内里包括了PHP原生的扩展,以及我们开拓本身的扩展时可以操作的器材,Linux下行使ext_skel,Windows下行使ext_skel_win32.php

二、行使ext_skel器材

我们可以在ext目次下看到全部的PHP原生扩展,个中包罗了认识的curl,json,mbstring,simplexml,sockets等扩展,尚有许多没有效过头至没有传闻过的扩展,不消在意这些,我们先打开我们最认识的curl来看看,有config.m4设置文件,有php_curl.h,curl_file.c等源代码,尚有一些中间文件,最后尚有一个tests目次,内里放的curl扩展的单位测试。重点存眷config.m4,php_curl.h,curl_file.c即可,最简朴的场景下这三个文件就是一个扩展的所有构成部门了。

打开任意看一下,不算太伟大,可是本身写一个相同的照旧挺头疼的,这时就必要用到我前面提到的ext_skel器材了。这个器材也在ext目次下,我们执行一下,./ext_skel --help,可以看到多少参数,我们用到的只有--extname=module,这里填上本身开拓的扩展名称。想深入相识各个参数的浸染可以看这里:http://php.net/manual/en/internals2.buildsys.skeleton.php

ext目次下多了一个hello目次,我们后续的事变都在这个目次下面,器材已经为我们自动天生了一些文件。

config.m4设置文件

开拓PHP扩展,在写C代码之前,要先设置一下这里。我们打开可以看到具体的注释声名,dnl是注释语法。

假如你的扩展用到了外部依靠,就设置--with-hello选项,不然设置--enable-hello选项,删除这下面3行的del注释

PHP_ARG_WITH和PHP_ARG_ENABLE这两个宏用来设置configure选项,一个设置必要外部依靠的,另一个设置不必要外部依靠的

设置好的内容,在后头执行configure --help时可以看到。

相同于C语音的头文件,包括了一些自界说的布局和函数声明,在这个demo中暂且不必要窜改

真正的逻辑代码都在这个文件中,后头会具体先容。

三、编写代码

好了,到这一步我们终于要开始写代码了,打开hello.c文件。

整个扩展的进口是zend_module_entry这个布局,详细的界说可以在Zend目次下的zend_modules.h文件中看到,一共有十几个属性,快速跳过,我们暂且只必要"hello world"。

"hello"是扩展的名字

hello_functions是扩展包括的所有要领的荟萃

后头5个宏别离代表5个扩展特定要领

暂且都不必要修改,知道这是一个进口就行。顺着这个进口,我们继承看怎么给扩展添加要领,在hello_functions[]要领数组中已经有了一个示例要领confirm_hello_compiled,我们参考它写我们的要领hello_world

先在扩展的要领数组中添加上hello_world,然后再界说hello_world。找到confirm_hello_compiled要领界说的处所,在它下面依葫芦画瓢,php_printf是Zend Engine中的printf要领。

四、编译安装

最后就是编译安装我们的扩展了,安装过PHP扩展的同窗不消看,没有履历的可以参考一下。

phpize

此刻PHP的扩展目次中已经有了hello.so这个文件,在php.ini中添加上扩展的设置

五、测试

写一个test.php要领,执行剧本就可以看到"Hello World!"

更多关于PHP相干内容感乐趣的读者可查察本站专题:《》、《》、《》、《》及《》

但愿本文所述对各人PHP措施计划有所辅佐。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读