分享热点新闻
打造优质自媒体!

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

将在下个月底发布的PHP 7.4将引入一个有趣的新功能,即期待已久的对FFI(外来功能接口)的支持。此功能使开发人员可以在本机PHP代码中调用C定义的函数/变量/数据结构。

https://www.fhzxb.com/wp-content/uploads/2019/10/20191031060831-5dba7a5fa9997.jpg

FFI和预加载将是PHP 7.4中的重要新功能,并且FFI还增强了PHP FPM系统服务,用于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库的功能。

定义库,从库的头文件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)’确定’

+ Remi \ Redis:get(foo)

string(19)’2019/10/23 12:45:03′

+ Remi \ Redis:__destruct

如果您想了解有关PHP 7.4 FFI的更多信息,请查看PHP.net上的文档及其基本示例。估计在PHP 7.4 GA发行之前将有多个RC版本,GA预计在11月28日左右发行。

特别提醒:本网站的内容是从其他媒体复制而来,目的是传达更多信息。这并不意味着本网站同意其观点。本网站尚未确认原创性以及文本中所述的内容。我们不保证或保证本文以及全部或部分内容和文本的真实性,完整性和及时性,请您亲自验证相关内容。本网站对此类作品的侵权不承担直接责任和连带责任。如果本网站上有任何侵犯您权利的内容,请及时与我们联系,我们将在24小时内处理该网站。

https://www.fhzxb.com/wp-content/uploads/2019/10/20191031060831-5dba7a5fd027c.gif
资料来源:中国开源
联想研究院表示技术有效地帮助建立多元化的工作环境
s的5G + VR应用程序为日本代表团带来了颠覆性的体验
本文评论

评论 抢沙发

3 + 1 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址