你能“编译”PHP 代码并上传一个二进制文件,它只由字节码解释器运行吗?

问题描述

在提出这个问题后,Facebook 推出了 ,这可能是迄今为止测试最好的 PHP 编译器(因为它运行着世界上最大的 10 个网站之一)。然而,Facebook 停止了它,转而支持 HHVM,它是一种虚拟机,而不是编译器。

除此之外,谷歌搜索PHP compiler出现了许多第 3 方解决方案。

桃子派

  • 桃派 GitHub
  • PHP 编译为 .NET 和 .NET Core
  • 可以编译成独立的二进制文件
  • 可在 Mac、Linux、Windows、Windows Core、ARM、…

帕朗厄尔

phc

  • 编译为本机二进制文件
  • 现在不太活跃(2014 年 2 月)——2011 年的最后一个版本,2013 年夏季的最后一次更改

Roadsend PHP 编译器

编译器

  • PHP的PECL扩展
  • 实验
  • 编译为 PHP 字节码,但可以将其包装在加载 PHP 解释器的 Windows 二进制文件中(参见bcompiler_write_exe_footer()手册
  • 现在看起来已停产(2014 年 2 月)——2011 年的最后一次更改

零项目

  • 维基百科_
  • WebSphere sMash变更的孵化器
  • IBM 支持
  • 编译成 Java 字节码
  • 现在看起来停产了(2014 年 2 月)——网站关闭,看起来像是 2008 年和 2009 年的大炒作

班巴拉姆

  • 编译为独立的 Windows 二进制文件
  • 二进制文件包含字节码和启动器
  • 现在看起来已停产(2014 年 2 月)——2006 年的最后一次更改

二进制PHP

  • 编译为 C++
  • 现在看起来已停产(2014 年 2 月)——2003 年的最后一次更改

解决方法

我知道 PHP 在服务器上运行之前会被编译为字节码,然后可以缓存该字节码,这样就不必在每次 Web 访问时重新解释整个脚本。

但是你能“编译”PHP 代码并上传一个二进制文件,它只会由字节码解释器运行吗?