php ffi是什么?,什么是PHP外部函数接口?

许多开发人员在PHP中使用外部函数接口。在这里,我们介绍了它是什么以及如何使用它。

什么是PHP外部函数接口?

PHP外部函数接口(FFI)是PHP 7.4中接口,使开发人员可以使用纯PHP创建扩展和对外部(也称为“外部”)库的绑定。  

他们还可以使用它来调用C函数并访问C数据结构。

为什么PHP外部函数接口很重要?

PHP中的外部函数接口是具有开创性的,因为以前,开发人员只能创建扩展和对外部(也称为“外部”)库的绑定-并使用C语言编写的PHP扩展和绑定来调用C函数并访问C数据结构。能够使用纯PHP完成这些任务:

  • 节省时间。

  • 为PHP开发人员创造了新的机会-例如使在代码中使用机器学习更加容易。

可以节省时间  

能够使用PHP中的此接口直接从PHP代码连接到外部C共享库,从而节省了开发人员时间,因为他们可以最大程度地减少用C编写新的PHP扩展和绑定的需要。 

例如,使用界面,他们可以:

  • 对不具有PHP扩展名的库启用快速原型制作。 

  • 为没有C专业知识并且需要与共享库(包括专有软件中的库)接口的商店提供解决方案。有了足够的PHP专业知识,他们现在可以在内部开发绑定。 

它可以创造新的机会  

PHP中的该接口具有一些有趣的应用程序,这些应用程序可以使用异步PHP(包括Swoole)以及预加载时间长的库,例如机器学习模型。另外,由于该扩展使调用C函数和C数据结构更加容易,因此组织可以在C中开发一段代码来更快地运行CPU密集型工作负载,并使用该接口进行连接。  

如今,PHP社区的领导者正在测试此PHP接口的使用,以支持PHP应用程序中不经常使用的功能。例如:

  • Dmitry Stogov使用Tensorflow编写了FFI的概念证明(以PHP加载是非常困难的。)

  • Remi Collet正在测试Redis绑定

FFI的历史和地位是什么? 

外部函数接口最初在Python和LuaJIT中可用,并且使这些语言对于快速原型制作非常有用。如今,许多语言都具有这种类型的界面。

Dmitry Stogov是PHP的主要核心贡献者之一,也是Perforce员工Zend,他写了PHP FFI。它最初是在PHP 7.4中引入的,仍被认为是实验性的。到2020年,社区可能会在扩展中添加更多功能,并提高其性能。

它会取代PHP扩展吗?

现在说还为时过早,尽管PHP中的此接口不太可能会取代PHP扩展。许多PHP扩展不仅仅是使用PHP数据对象(PDO)绑定到C库。但是,如果外部功能接口的性能达到或更高,则可能会替换更简单的扩展名。在撰写此博客时,几乎在每种情况下,PHP的此接口都比纯C / C ++扩展慢。

如何在PHP中使用外部函数接口

开始在PHP中使用此接口非常简单:

1.创建一个最小的头文件

为要与之绑定的库创建一个最小的头文件。头文件(C中的.h文件)定义了PHP和数据类型将可用的接口。

2.实例化FFI

使用该头文件和/或您要加载的库实例化FFI。 

3.准备数据结构

如果需要,请准备数据结构,然后从要通过FFI实例绑定的库中调用函数,就好像它们是FFI对象的方法一样。 

警告:由于此扩展仍处于试验阶段,并且启用了系统之间的日志级别接口,因此,只有在具有C和代码中C API的高级知识的情况下,才应使用该扩展。您可以使用ffi.enable指令将风险降至最低

了解PHP使用趋势 

所有网站中有将近80%是用PHP编写的。组织正在使用诸如PHP接口和PHP扩展之类的功能来帮助发展其站点并使用现代Web服务实现更大的创新。 

我们对500多家PHP开发人员和商业领袖进行了调查,调查了他们的使用和涉及PHP的战略计划。立即阅读报告。 

本文转载自zend官方blog

访客
邮箱
网址

通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top