域名频道资讯站
我们一直在努力制造惊吓

PHP 7.4 的 FFI 将支持更好地在 PHP 中使用 C 函数/数据结构

FFI 与预加载功能都将是 PHP 7.4 的重要新功能,FFI 还增强了 PHP FPM systemd 服务、用于 OpenSSL 流的 TLS 1.3 以及许多其他更改。PHP 7.4 的 FFI 甚至可与其他语言的 FFI 实现相媲美。

使用 PHP FFI 应该可以减少为 C 库/程序接口编写新 PHP 模块的需求,因为现在可以使用外部函数接口来完成了。如果你对 PHP 7.4 FFI 的示例代码感到好奇,负责 Fedora/RedHat 的 PHP 打包程序工程师 Remi Collet 撰写了一篇新的博客文章,其中概述了一些带有示例代码的用例。

下面摘录一个简单的例子:

Redis 客户端

目前存在使用 C 或 PHP 编写的 Redis 客户端的各种实现,此示例演示了使用 FFI 来访问 hiredis 库的函数。

1. 定义库,从库的头文件 hiredis/hredis.h 和 hiredis/read.h 复制/粘贴:preload-redis.h

2.对需要预加载的RemiRedis 类进行定义:preload-redis.inc

3.使用此类的测试脚本:redis.php

输出摘要

$ php74 -d ffi.preload=preload-redis.h -d opcache.preload=preload-redis.inc redis.php...  + RemiRedis::__construct(localhost, 6379)  + RemiRedis::initFFI()  + RemiRedis::del(foo)int(1)  + RemiRedis::get(foo)NULL  + RemiRedis::set(foo, 2019/10/23 12:45:03)string(2) "OK"  + RemiRedis::get(foo)  string(19) "2019/10/23 12:45:03"  + RemiRedis::__destruct

如果希望了解有关 PHP 7.4 FFI 的更多信息,可以查看 PHP.net 上的文档及其基本示例。在发布 PHP 7.4 GA 前估计会经历多个 RC 版本,GA 预计将在 11 月 28 日左右发布。

本文素材来自互联网

赞(0)
分享到: 更多 (0)

中国专业的网站域名及网站空间提供商

买域名买空间