Peachpie 0.7.0 的新特性,.NET 平台上的 PHP 编译器

Peachpie 0.7.0 发布了。Peachpie 是用于 .NET 平台上的 PHP 编译器。

在对 Peachpie 的用法进行了一些工作之后,现在回到了在编译器本身实现的核心功能。目前正在更加接近完成项目的“初衷” — 能够运行完整的现实世界的应用程序。

新版本的 Peachpie 和相应的 VSCode 扩展发布了。自 0.6.0 以来,很多事情都发生了变化,要注意 Peachpie 仍未发布正式版,所以不可运行完整的应用程序,也不建议在生产环境中运行 Peachpie。一些新特性:

  • PHP 会话

<?php
session_start();               // this actually initializes $_SESSION from ISession service
echo $_SESSION['counter']++;  // here we change PHP session variable
session_commit();             // and this serializes $_SESSION back into ISession and saves the session object
  • 评估代码

<?php
function main() 
    //eval('echo "Hello evil .NET World!";');
    eval('class X  function foo() echo __METHOD__;  }');
    (new X)->foo();
}
main();
  • Peachpie 诊断

<?php
function g($p) 
  global $p; // reported as not yet supported

print_r( g() ); // g : Generator
  • 实验性的生成器实现

<?php
function g() 
  yield 1;
  yield 2;
  echo yield 3; // reported as not yet supported

print_r( g() ); // g : Generator
  • VSCode 扩展

  • 对图像和 GD2 的实验性支持

发布主页

Peachpie 是一个用于 .NET 平台上的的 PHP 编译器和运行时。作为 PHP 语言的完全重新实现,它允许完全使用 .NET 进行编写,并在 .NET Framework、NET Core 和 Mono 上运行 PHP。Peachpie 可以无缝利用 .NET 对象,另一方面,也可以让 C# 代码直接访问已编译的 PHP 函数、变量和类。

Peachpie 项目的目标是将 PHP 代码库迁移至 .NET,从而可通过各自的 API 为 PHP 提供 .NET 和 ASP.NET 运行时。

Original article:

Peachpie 0.7.0 的新特性,.NET 平台上的 PHP 编译器