许多开发人员在PHP中使用外部函数接口。在这里,我们介绍了它是什么以及如何使用它。
PHP外部函数接口(FFI)是PHP 7.4中的接口,使开发人员可以使用纯PHP创建扩展和对外部(也称为“外部”)库的绑定。
他们还可以使用它来调用C函数并访问C数据结构。
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应用程序中不经常使用的功能。例如:
外部函数接口最初在Python和LuaJIT中可用,并且使这些语言对于快速原型制作非常有用。如今,许多语言都具有这种类型的界面。
Dmitry Stogov是PHP的主要核心贡献者之一,也是Perforce员工的Zend,他写了PHP FFI。它最初是在PHP 7.4中引入的,仍被认为是实验性的。到2020年,社区可能会在扩展中添加更多功能,并提高其性能。
现在说还为时过早,尽管PHP中的此接口不太可能会取代PHP扩展。许多PHP扩展不仅仅是使用PHP数据对象(PDO)绑定到C库。但是,如果外部功能接口的性能达到或更高,则可能会替换更简单的扩展名。在撰写此博客时,几乎在每种情况下,PHP的此接口都比纯C / C ++扩展慢。
开始在PHP中使用此接口非常简单:
为要与之绑定的库创建一个最小的头文件。头文件(C中的.h文件)定义了PHP和数据类型将可用的接口。
使用该头文件和/或您要加载的库实例化FFI。
如果需要,请准备数据结构,然后从要通过FFI实例绑定的库中调用函数,就好像它们是FFI对象的方法一样。
警告:由于此扩展仍处于试验阶段,并且启用了系统之间的日志级别接口,因此,只有在具有C和代码中C API的高级知识的情况下,才应使用该扩展。您可以使用ffi.enable指令将风险降至最低。
所有网站中有将近80%是用PHP编写的。组织正在使用诸如PHP接口和PHP扩展之类的功能来帮助发展其站点并使用现代Web服务实现更大的创新。
我们对500多家PHP开发人员和商业领袖进行了调查,调查了他们的使用和涉及PHP的战略计划。立即阅读报告。
本文转载自zend官方blog
在安装之前我们先看看官方给出的依赖关系.首先是dll文件和mongodb软件的依赖关系然后是PHP文件和dll的依赖关系我的是phpstudy的集成环境PHP5.4.45 NTS+Apache+Mysql【一】.安装mongodb3.0软件对比依赖关系下载mongodb3.0.msi软件,完整名称:...
git pull https://git.oschina.net/392223903/learn.git master 换为您的git地址...
1.关机Process.Start("shutdown", "-s -t 0"); 2. 注销 Proc...
方案1.IE浏览器"无法显示此页"的解决办法(1).按下Win+R键打开运行,输入netsh winsock reset,回车;(2).重启即可. 方案2.IE浏览器"无法显示此页"的解决办法 (1).设置-连接-局域网设置-自动检测设置开...
首先网页全部是纯静态的文件,本地测试正常访问,服务器端无法加载CSS,并且无法查看CSS文件的内容。 解决方案:关闭网站的压缩->>静态压缩和动态压缩...
首先在阿里云申请免费的证书,选择自动生成证书。然后就是nginx虚拟主机配置文件的修改。以下是我的配置文件(因为公司开发小程序,没有办法只能使用https)。您只需要关注带有ssl的配置选项,我增加了一个监听80和443的端口,同时增加了http跳转https的配置server &nbs...