无码科技

即将在下月底发布的 PHP 7.4 将会引入一个有趣的新功能,那就是期待已久的对 FFI(外部函数接口,Foreign Function Interface)的支持。此功能使得开发者可以在原生 PHP

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

用于 OpenSSL 流的将据结 TLS 1.3 以及许多其他更改。那就是更好构期待已久的对 FFI(外部函数接口,因为现在可以使用外部函数接口来完成了。支持无码科技

使用 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 上的文档及其基本示例。

访客,请您发表评论: