PeachPie 1.1.13 发布支持最新PHP 8.5.0

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已经支持了!

复制代码
https://peachpie.io/blog/2025/11/16/update-1113-and-php-85-pipe-operator#__codelineno-0-1$result = "Hello World"
https://peachpie.io/blog/2025/11/16/update-1113-and-php-85-pipe-operator#__codelineno-0-2    |> strtoupper(...)
https://peachpie.io/blog/2025/11/16/update-1113-and-php-85-pipe-operator#__codelineno-0-3    |> str_shuffle(...)
https://peachpie.io/blog/2025/11/16/update-1113-and-php-85-pipe-operator#__codelineno-0-4    |> trim(...);

尽管它可能被视为语法糖,但请记住,正确的作数是一个可调用对象,而不是函数调用。这可能会受到绩效惩罚。

如上例所示,使用了 PHP 8.1 引入的新一类可调用语法,该语法为函数strtoupper创建了可调用函数strtoupper(...)

编译器可能会输出非常短的IL作码序列,例如:

复制代码
https://peachpie.io/blog/2025/11/16/update-1113-and-php-85-pipe-operator#__codelineno-1-1.ldstr "Hello World"
https://peachpie.io/blog/2025/11/16/update-1113-and-php-85-pipe-operator#__codelineno-1-2.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