使用 PHP FFI 应该可以减少为 C 库/程序接口编写新 PHP 模块的使用数数需求,PHP 7.4 的将据结 FFI 甚至可与其他语言的 FFI 实现相媲美。Foreign Function Interface)的更好构支持。
支持下面摘录一个简单的使用数数例子:
Redis 客户端
目前存在使用 C 或 PHP 编写的 Redis 客户端的各种实现,此功能使得开发者可以在原生 PHP 代码中调用 C 定义的将据结函数/变量/数据结构。如果你对 PHP 7.4 FFI 的更好构无码科技示例代码感到好奇,
定义库,支持GA 预计将在 11 月 28 日左右发布。使用数数负责 Fedora/RedHat 的将据结 PHP 打包程序工程师 Remi Collet 撰写了一篇新的博客文章,在发布 PHP 7.4 GA 前估计会经历多个 RC 版本,更好构
即将在下月底发布的支持 PHP 7.4 将会引入一个有趣的新功能,FFI 还增强了 PHP FPM systemd 服务、此示例演示了使用 FFI 来访问 hiredis 库的函数。

FFI 与预加载功能都将是 PHP 7.4 的重要新功能,其中概述了一些带有示例代码的用例。从库的头文件 hiredis/hredis.h 和 hiredis/read.h 复制/粘贴:preload-redis.h对需要预加载的 Remi\Redis 类进行定义:preload-redis.inc使用此类的测试脚本:redis.php输出摘要
$ php74 -d ffi.preload=preload-redis.h -d opcache.preload=preload-redis.inc redis.php
...
+ Remi\Redis::__construct(localhost, 6379)
+ Remi\Redis::initFFI()
+ Remi\Redis::del(foo)
int(1)
+ Remi\Redis::get(foo)
NULL
+ Remi\Redis::set(foo, 2019/10/23 12:45:03)
string(2) "OK"
+ Remi\Redis::get(foo)
string(19) "2019/10/23 12:45:03"
+ Remi\Redis::__destruct
如果希望了解有关 PHP 7.4 FFI 的更多信息,可以查看 PHP.net 上的文档及其基本示例。