新闻

PHPY 打破语言界限,使PHP引入Python生态,开创PHP语言AI编程时代!

发布者:深圳网站设计,日期:2024/1/21 16:52:19
phpy 是Python与PHP互调用库,可以在PHP中使用Python语言的函数和类库,或者在Python中使用PHP的包。但不是语言内嵌。编码依然使用各自的原生语法。

phpy 是识沃团队最新推出的开源项目,目标是为 PHP 引入 Python 生态,来弥补 PHP 生态的空缺和不足。phpy 使得 PHP 可以调用所有 Python 的包。包括当下非常流行的 AI 库,如:PyTorch、transformers、TensorFlow 等包括当下非常流行的 AI 库,如 PyTorch、transformers、TensorFlow 等,以及科学计算库,如 Numpy、Pandas、Scikit 等,还可以使用图形界面库,如 PyQt、wxPython 等。


PHPY 打破语言界限,使PHP引入Python生态,开创PHP语言AI编程时代!


GitHub 地址:https://gitee.com/swoole/phpy


phpy 可以作为 PHP 的扩展,也可以作为 Python 的 C 模块。既可以在 PHP 代码中调用 Python 的库,也可以在 Python 中调用 PHP 的类和函数。


运行原理:

直接作为 C++ Mudule ,import 加载即可。

import phpy

content = phpy.call('file_get_contents', 'test.txt')

o = phpy.Object('redis')
assert o.call('connect', '127.0.0.1', 6379)
rdata = phpy.call('uniqid')
assert o.call('set', 'key', rdata)
assert o.call('get', 'key') == rdata

phpy 是Python与PHP互调用库,可以在PHP中使用Python语言的函数和类库,或者在Python中使用PHP的包。但不是语言内嵌。编码依然使用各自的原生语法。Python 中调用 PHP 进程内同时创建了 ZendVM 和 CPython VM,直接在进程堆栈空间内使用 C 函数 互相调用, 开销只有 zvalPyObject 结构体转换,因此性能是非常高的。phpy 基于 PHP 官方的 ZendAPI 和 Python 官方的 Py C API 实现,没有其他外部的 C 库依赖。因此是可以实现跨平台的,Linux、Windows、macOS 均可使用。