qian奇岸微信二维码 如您需要快速报价 请加技术经理微信 服务热线
13501992972
"MENU"
首页 > 行业新闻 > 正文

为什么要用rust开发php扩展?

奇岸开发
ahqian.com
10/21/2022
wechat

无需加好友免费技术支持

大家都知道,php欠缺一些作用有时也会感到尴尬,比如:调用ffmpeg视频解决专用工具php system函数启用?php脚本制作,太不没事了!这时将考虑到开发php完成扩展ffmpeg的实际操作。

为什么使用?php扩展?

优势:

php扩展是C开发的,速率别说。耦合度高,用以提高php是的。安全系数高,终究扩展是编译程序流程,编码不开源系统。

需对于php开发版本和系统环境非常麻烦。换句话说,7.4版本php,liunx只适用自然环境持续发展的扩大php版本和系统。必须会C、C ,自然,文中是以rust开发,掌握C的基本数据类型,掌握Crust FFI熟练和操作数据类型转换。调节非常麻烦。为何要用rust开发php扩展?

缘故非常简单,我们应该谈一谈rust的语言表达特点

由于所有权特性,你程序流程安全系数高,也不会像C那般出现一些风水玄学BUG.拥有C性能,我也是很看中它发展趋势。

rust开发php扩展步骤:

自然,rust现在还没有专业开发php扩展框架。所以我的逻辑性很简单,用rust开发静态库曝露C【涉及到FFI大家在php立即引进官方网框架rust静态库能够启用其方式。

开发自然环境

宝塔面板【CentOS 7.6】、GCC【涉及到php针对扩展框架的编译,我还在这里有一个内嵌的软件。假如编译,自主组装

总体开发步骤:

我们在这里开发php7.4扩展为例子。

2、免费下载php7.4 liunx版源代码

php官网:

留意!这一源代码版本务必和你的自然环境相符合php版本完全一致!

3、提交php源码到宝塔面板

在usr下建立一个phper文件夹,再将源码压缩文件上传至这儿。

文件解压

4.打造自己的扩大

/usr/phper/php-7.4.30/ext文件目录样一个文件目录php文件,它能够建立扩展!

留意设定cmd版本,由于下面使用php指令一定要和版本一致!

点一下终端设备,在刚才那目录下键入扩展指令。

这里有一个一个新的扩展源代码文件。

点一下此目录下的终端设备,键入:

然后键入:

留意这一主要参数php途径,假如是别的版本,请安装在宝塔面板中寻找相对应的路线,它们都放在一起。

回车键逐渐查验

最终键入:

开展编译。

这一文件目录是编译的so扩展最后文件!

一起来看看默认设置所产生的扩展作用。

查询主文件要了解php以它默认设置给的框架为例子。

换句话说,刚编译的扩展有2个函数公式。使我们测试一下。

留意!每一次改动主文件,都要按上述指令再度运作,不然不生效,好奇怪!

5、应用扩展

将刚产生的扩展文件拷贝到大家身上php在自然环境扩大中

配备php.ini加载hello.so扩展

储存后还记得重新启动php,不然不生效!

点一下文件管理方面的终端设备,键入:

目录中可以看出我们自己的扩展。

在测试下扩展2个函数公式时,创建一个网站。

看中,php版本是7.4

浏览网站,发觉没什么问题。

当然你也可以根据指令运作php脚本制作查看结果基础是网址在哪儿里phpcmd版本设定7.4】

OK!从建立到形成到应用扩展的一个过程完毕,随后进到主题风格,逐渐使用rust开发扩展。

6、rust与php融合开发的扩展

开发专用工具:CLion

必须rust环境与CLion中rust外挂安装和硬件配置,这一一个人去百度搜索,比我想象的要详细!

建立一个hello命名库新项目

大家写两个导出来函数公式,即加减法作用和base64字符串数组剖析作用。

lib.rs

Cargo.toml

留意编译过程的系统类型,不然静态库编译扩展的引进可能报告错误,提醒不兼容。

64位静态库的编译

编译32个静态库

我们都是64位系统软件。

会形成一个.a这一文件便是文件liunx适用静态库文件。

形成适用C语言的胶头文件【便捷C启用库文件必须所写的函数声明】

建立 cbindgen.toml 文件

具体内容:

安装cbindgen,建立头文件。

C语言的函数声明一键生成hello.h调用文件。

返回之前我们造就的hello扩展

创建lib文件夹

刚编译的静态库.a文件上传至lib目录下

刚建立的.h把头文件上传至扩展目录下

配备.m4预编译文件重要

设定引入lib静态库文件夹中的静态库文件

储存.m4

撰写主文件

删掉以前产生的扩展文件

再形成扩展

尺寸都变了,表明我们自己的静态库在房间里。

依据上述扩展全过程更换扩展

留意!拆换扩展文件后重新启动PHP哦,不然不生效!

7、检测rust开发的php扩展

网页页面评估和cmd检测

还可以通过php立即检测扩展框架

撰写要实行测试扩展函数公式

立即键入扩展文件目录:

实行后 tests导出一个文件目录.out文件

是 这个不是更方便吗?

热度465

了解更多为什么要用rust开发php扩展?欢迎联系奇岸开发客服。

奇岸开发可定制企业官网小程序、小程序商城、餐饮外卖小程序、预约小程序、多门店小程序、分销小程序及个人小程序。

微信二维码

微信长按识别或扫一扫,无需加好友直接咨询,企业网站开发、网站托管维护、企业管理系统开发、微信小程序制作、域名主机、网站备案、网站改版等提供专业技术解答。

精彩推荐

猜你喜欢