新闻动态
您当前的位置:主页 > 新闻动态 >

PHP编写自定义扩展

更新时间:2019-04-03

有两个原因来写自己的PHP扩展。第一个原因是:PHP需要支持的技术,她不支持。这通常包括一些现成的包C库,为了提供PHP接口。例如,如果一个数据库被称为市场的FooBase,你需要创建一个PHP扩展来帮助你从PHP的C库调用FooBase。这项工作可仅由一人完成,然后再分享整个社会PHP(如果你愿意的话)。第二种是不太常见的原因是:你需要从原因写一些业务逻辑来考虑性能或功能。

这里写图片描述

1。下载源码包PHP:
wget的HTTP:// TW1。PHP。净/分布/ PHP-7.1。9。柏油。GZ

  1. 提取源代码包,Zend的目录包含了PHP Zend引擎的源代码,在这里定义了一些函数和宏,我们需要简单地看。
    ext目录包含PHP原生扩展,以及中,我们可以使用使用Linux,Windows下的ext_skel自己的扩展开发工具,使用ext_skel_win32。php

  2. 使用
    这里写图片描述

您可以生成在ext目录下自己的扩展

配置。M4的配置文件
PHP扩展的开发,编写C代码必须先在这里配置一下前。我们打开就可以看到详细的笔记,DNL注释语法。
如果您的扩展使用外部依赖,它-with问候配置选项,或配置-enable问候选项删除以下三行删除评论
PHP_ARG_ENABLE(你好,是否启用你好支持,
确保注释对齐:
[-Enable问候启用你好支持])
和PHP_ARG_WITH PHP_ARG_ENABLE两种宏运使用了配置选项,配置需要依赖于外部,其他配置并不需要外部依赖性
配置的内容,当执行时,配置-help你可以在后面看到。

php_晨露农药化肥你好。h头文件
声音类似于C头文件,包含一些结构和函数声明定制,无需在演示更改此

hello。C代码文件
此文件中的真实逻辑代码,后面会详细介绍。

三,编写代码
那么,对于这一点,我们终于开始编写代码,开放你好。C文件。
Zend_module_entry整个扩展入口是这样的结构,具体的定义可以在Zend的zend_modules目录。h文件看,一共有十几特性,快速跳过,你只需要的“hello world”。

STANDARD_MODULE_HEADER帮助我们实现前面六个属性
“你好”是名称的扩展
hello_functions是一个集合的扩展,其包括所有的
五个宏代表五个扩展特定方法背后
PHP_HELLO_VERSION是一个扩展的版本号,在头文件中定义
STANDARD_MODULE_PROPERTIES帮助我们实现物业的其余部分
暂时不需要改变,知道这是上线的入口。随着高考,我们继续来看看如何添加一个扩展方法,一直在hello_functions阵列confirm_hello_compiled []的方法,我们是指它的实例方法来写我们的方法程序hello_world

在将第一程序hello_world阵列上展开的方法,然后再定义程序hello_world。找到它下面的定义confirm_hello_compiled方法的地方Yihuhuhuapiao,php_printf是Zend引擎的printf方法。

编写代码C完成后,最后执行

这里写图片描述

77207
地图
地址:广西省百色市
电话:77207
传真:
邮箱:77207@qq.com
地址:广西省百色市????电话:77207????传真:
Copyright ? 2002-2018 广西晨露农药化肥有限公司 版权所有 txt地图 HTML地图 XML地图 百度XML地图 ICP备案编号:ICP备********号
澳门牌九注册