KPHP 是一个 PHP 编译器。它将 PHP 的有限子集编译为运行速度比 PHP 更快的本机二进制文件。
KPHP 由 VK.com 开发,多年来一直保持专有状态,直到 2020 年底开源。
访问 KPHP 网站,其中包含文档、演示等。
KPHP 不会编译任何随机的 PHP 代码:
它不支持无法编译的功能,例如按名称或模拟调用。
它不会编译破坏类型系统的代码,例如,在数组中混合数字和对象。
它没有 VK.com 从来不需要的 PHP 功能,例如 SPL 类和 XML 解析。
一些 PHP 语法细节尚未实现,例如生成器和匿名类。
请在此处阅读更多相关内容:KPHP 与 PHP 的差异。
KPHP 会从整体上分析您的代码,并执行各种侧重于性能和安全性的优化:
推断所有变量的类型,如何在 C++ 中声明它们。
编译时优化,例如内联 getter 或减少引用计数器抖动。
编译时检查,包括不变性和类型系统要求。
运行时优化,例如常量数组预初始化和类型化向量。
除了上述之外,KPHP 还有协程。然而,目前它们在 VK 代码之外几乎不适用。
一般来说,当您的代码符合最佳实践时,它的运行速度比 PHP 快 3-10 倍。
查看比较 KPHP 和 PHP 性能的基准页面。
您还可以参考PHP vs KPHP vs C++ 。
KPHP 并不总是比 PHP 快,但它可以通过专注于严格类型和 KPHP 内置函数来加速您的代码。
这种情况很常见。 KPHP 很少能无错误地编译已经存在的代码。通常需要一些时间来重写 PHP 代码才能与 KPHP 进行编译。
在编译现有项目中了解更多相关信息。
KPHP 代表 VK.com (V Kontakte LLC) 根据 GPLv3 许可证进行分发。
要与 KPHP 社区进行交流,请使用 GitHub 问题或 Telegram 聊天。
您还可以查看我们的常见问题解答页面和路线图页面。
请参阅贡献页面。
进入安装页面,只需按照左侧菜单进行操作即可。