嗯,是的,也不是。
HHVM 有一种所谓的 RepoAuthoritative 模式,在这种模式下,HHVM 将不再检查 PHP 文件的存在或它们的最新程度;相反,它将直接从其缓存中检索 HHBC。
理论上,您可以按照以下步骤操作:
- 为所有 PHP 文件预先生成 HHBC 并将该 HHBC 插入 HHVM 的缓存中。这就是所谓的预分析阶段(如果你曾经在 HHVM 文档中看到过,这就是他们的意思)
- 打开 RepoAuthoritative 模式(它只是 HHVM 配置中的 1 行)
- 删除你的 PHP 代码
这样,您的 PHP 应用程序将在没有源代码的情况下正常运行。重新启动服务器不会改变这一点,因为 HHVM 的字节码缓存存在于磁盘上(它被实现为 SQLite 数据库)。
但是,如果您:
- 想要更改代码中的某些内容。您必须复制代码、进行更改并重复预分析阶段。
- 想要将 HHVM 升级到更新的版本。HHVM 使用其构建 ID 作为缓存键的一部分,因此,如果您升级它,字节码缓存将变得无法访问,并且由于您将在 RepoAuthoritative 模式下运行,您的应用程序将减少为一堆 HTTP 404 错误。要解决此问题,您还必须重复预分析阶段。
底线:没有上涨空间,下跌空间很大。这样做是没有意义的。
PS:我希望我回答了你的问题。我也可能误解了您的要求;如果是这种情况,请在评论中告诉我。