将要在下年底正式发布的 PHP 7.4 将会导入两个有意思的新机能,那是翘首以盼的对 FFI(内部表达式USB,Foreign Function Interface)的全力支持。此机能使开发人员能在原生植物 PHP 标识符中初始化 C 表述的表达式/表达式/计算机流程。
FFI 与预读取机能都将是 PHP 7.4 的关键新机能,FFI 还进一步增强了 PHP FPM systemd 服务项目、用作 OpenSSL 流的 TLS 1.3 和很多其它更动。PHP 7.4 的 FFI 即使可与其它词汇的 FFI 同时实现媲美。
采用 PHP FFI 假如能增加为 C 库/流程USB编写新 PHP 组件的市场需求,即使那时能采用内部表达式USB来顺利完成了。假如你对 PHP 7.4 FFI 的实例标识符深感疑惑,负责管理 Fedora/RedHat 的 PHP 装箱流程技师 Remi Collet 编写了一则捷伊网志该文,当中简述了许多暗含实例标识符的示例。
上面节录两个单纯的范例:
Redis 应用流程
现阶段存有采用 C 或 PHP 编写的 Redis 应用流程的各式各样同时实现,此实例模拟了采用 FFI 来出访 hiredis 库的表达式。
表述库,从库的子流程 hiredis/hredis.h 和 hiredis/read.h 复制/粘贴:preload-redis.h
对须要预读取的 RemiRedis 类展开表述:preload-redis.inc
采用这类的试验JAVA: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 日左右正式发布。

