PeachPie 是一个有趣的技术项目,它架起了一座连接 PHP 生态与 .NET 世界的桥梁。
PHP的最新版本是PHP 8.5.0,已于2025年11月20日正式发布。PeachPie 1.1.13 版本也同步发布。这是一个版本上的提升,包含了一些安全更新和新的语法功能,以及最新的PHP 8.5.0的支持。当前版本编译器和库都是用 .NET 6 构建的。PeachPie 团队努力保持与遗留项目的兼容性,尽管即将到来的更新将针对 .NET 10,以利用新的 C# 和 .NET 特性。
PHP 8.5
即将推出的PHP 8.5将引入新的管道操作员。类似于 Bash 中的管道作符,它将左作数的结果作为参数传递给右侧的可调用函数,从而高效地实现函数调用链式,避免丑陋嵌套。|>
PeachPie已经支持了!
$result = "Hello World"
|> strtoupper(...)
|> str_shuffle(...)
|> trim(...);
尽管它可能被视为语法糖,但请记住,正确的作数是一个可调用对象,而不是函数调用。这可能会受到绩效惩罚。
如上例所示,使用了 PHP 8.1 引入的新一类可调用语法,该语法为函数strtoupper创建了可调用函数strtoupper(...)。
编译器可能会输出非常短的IL作码序列,例如:
.ldstr "Hello World"
.call strtoupper
或者,编译器也可以将其视为动态函数调用:在运行时解析函数,将参数加载到参数数组中,并动态执行调用。
PeachPie 的优势与价值
- 性能提升:由于 PHP 代码被提前编译为 .NET 程序集,它可以借助 .NET 的即时编译器(JIT)进行深度优化。一些测试表明,在函数调用等场景下,其性能相比原生 PHP 有显著提升 。
- 代码安全与类型检查:它将 PHP 这种动态语言在编译阶段就进行了严格的语法和类型检查,有助于在运行前发现潜在错误。同时,分发时是编译后的程序集,有助于保护源代码安全。
- 无缝互操作性:实现了 PHP 和 C# 代码的双向调用。你可以在 PHP 项目中直接使用丰富的 .NET 类库,也可以在 C# 项目中引用 PHP 编写的模块 。
- 强大的开发生态:集成到 Visual Studio 和 MSBuild 中,开发者可以享受工业级的代码编辑、调试、性能分析等工具支持。
主要应用场景
- 现有 PHP 应用现代化:如果你有一个用 PHP 编写的大型遗留系统(例如 WordPress 博客),希望将其集成到新的 .NET 技术栈中,PeachPie 提供了一种平滑迁移的可能
- 混合语言开发:在新项目中,可以根据技术优势或团队特长,让 PHP 和 C# 分别负责不同的模块(例如,PHP 处理前端展示逻辑,C# 处理后端高性能计算),然后通过 PeachPie 将它们无缝整合
PeachPie 为 PHP 开发者打开了通往 .NET 世界的大门,也为 .NET 生态注入了新的活力。无论是希望提升现有 PHP 应用的性能和安全性,还是探索混合语言开发的新模式,它都值得你深入了解。
Update 1.1.13 and PHP 8.5 Pipe Operator: https://peachpie.io/blog/2025/11/16/update-1113-and-php-85-pipe-operator
peachpie 1.1.13: https://github.com/peachpiecompiler/peachpie/releases/tag/v1.1.13