一尘不染

您可以“编译” PHP代码并上传一个二进制文件,该文件将由字节码解释器运行吗?

php

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

但是,您可以“编译” PHP代码并上载一个二进制文件,该文件将由字节码解释器运行吗?


阅读 601

收藏
2020-05-26

共1个答案

一尘不染

提出这个问题后,Facebook推出了 适用于PHP的HipHop,
这可能是迄今为止测试最完善的PHP编译器(它运行着世界十大网站之一)。但是,Facebook停止使用HHVM,因为HHVM是虚拟机,而不是编译器。

除此之外,谷歌搜索PHP compiler提供了许多第三方解决方案。

[PeachPie(https://www.peachpie.io/)

  • PeachPie GitHub
  • 将PHP编译为.NET和.NET Core
  • 可以编译成独立的二进制文件
  • 在Mac,Linux,Windows,Windows Core,ARM等平台上运行

Phalanger

[phc(https://github.com/pbiggar/phc)

  • 编译为本地二进制文件
  • 现在不太活跃(2014年2月)– 2011年最新版本,2013年夏季最新变化

Roadsend PHP编译器

编译器

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

零计划

  • 维基百科IBM
  • WebSphere sMash变更的孵化器
  • 受IBM支持
  • 编译为Java字节码
  • 现已停产(2014年2月)–网站关闭,在2008年和2009年大肆宣传

bamcompile/

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

binaryphp/

  • 编译为C ++
  • 现已停产(2014年2月)– 2003年的最新更改
2020-05-26