我已经阅读了很多关于 Facebook 的 PHP HipHop 项目的内容,但我似乎无法弄清楚的一件事(我没有 64 位机器来测试 HipHop)是是否可以将 HipHop 用作简单的项目转换工具,而不仅仅是编译一个二进制文件。
本质上,如果有人如此倾向于尝试使用 HipHop 将 PHP CLI 应用程序转换为 C++,那么将来是否有可能只在 C++ 中维护它,而不必每次都使用 HipHop?
我希望自动翻译的代码比手写代码更难维护。它将由计算机生成,因此您可以摆脱许多地方的循环之类的东西。很多东西可能不是最理想的(直接翻译并不总是适应成语),在手动调整一段时间后,它将是混合样式(自动生成和手写),这将是维护的噩梦。
本质上,您应该将此 C++ 代码视为经过常规编译后的二进制文件。你会稍微调整一下以添加新功能吗?不,您将编辑源代码然后重新编译它。这也是你应该在这里做的。生成C++和中间表示。它采用人类可读语言这一事实不应诱使您对其进行修改。
HipHop 生成的 C++ 源代码完全可以被修改。人们确实为此使用 HipHop。在 HipHop 生成的 C++ 上进行大量扩展是没有意义的,因为它不像手写代码(或任何接近高效的地方)那么容易遵循,但是对于小的更改(可能是优化),它可以完成。
此外,HipHop 可用于生成基础,如果您想将 PHP 脚本转换为 C++,您可以完全重写该基础。您可以从查看 HipHop 生成的代码开始,以帮助您手动重写整个内容。