Phalanger 是由 DevSense 提供、针对 PHP 的.NET 运行时和编译器。在我们上次介绍 Phalanger 的时候,它还处于转换后台以使用DLR 的过程之中,那在前一版本的基础上对性能做出了提升。
在那之后发布了 Phalanger 3 ,支持 PHP 5.3 命名空间语法和语义以及 Mono。但在 Mono 运行时中有些缺陷会导致问题,这使得它无法对 Phalanger 提供完全支持。在Mono 2.10.8 中缺陷已经得到修正,这使得我们可以在Linux 上选择使用Phalanger。
Phalanger 3 中另一项改变是支持从 C#和 Visual Basic 调用 DLR 对象。尽管在 2.1 版本中已经部分有效,但那时还需要一种笨拙的语法来传递 context 对象。在版本 3 中不再需要这种传递。开发者还可以通过 ScriptContext.CurrentContext.Globals直接访问PHP 的globals 。
我们会注意到,Phalanger 仍然支持把PHP 代码静态编译成标准的.NET 程序集。Marc Mezzacca 建议对基于PHP 的站点进行预编译,从而“确保应用程序中没有错误,并且在第一次请求的时候缩短响应时间”。
查看英文原文: Phalanger Roundup
评论