2012-01-22 68 views
0

从我读过的有关PHP HipHop的文章中可以看出,它将PHP代码转换为C++。我不明白的是实际的代码是如何被执行的,以及是否只有一些代码元素可以被HipHop处理。使用PHP HipHop创建模块助手

我有文件helpers.inc.php(包含很多功能),database.class.inc.php(包含PDO扩展名)以及不会经常更改的类似文件。我想将它们转换为C++ PHP模块,我可以将它包含到其他项目文件中,或者简单地在整个系统中使用它们。

使用PHP HipHop有可能吗?

+2

你的应用程序是Facebook的大小吗?如果不是的话,甚至在考虑这样的事情之前,您应该解决许多优化问题:即尽量减少磁盘I/O和数据库开销。即使你得到这样一个观点,HipHop对像[APC](http://php.net/manual/en/book.apc.php)或[XCache](http:// xcache.lighttpd.net/)可能不足以证明其在您的项目中的使用。这听起来像是一个过早优化的情况:) – rdlowrey

+0

“不成熟的优化是万恶之源。” - Donald Knuth – Bojangles

+0

嗯,它肯定没有Facebook那么大。 :)它是平均值。每天5分钟请求50k个请求。我没有遇到任何缓慢响应或缺乏服务器资源的问题。我只是想研究我周围的技术。也就是说,最小化I/O(服务器无论如何都在使用SSD),APC,memcached都在使用中。 – Gajus

回答

1

你一直在误导,应该阅读Running HipHop wiki page

可以在5种不同的模式下运行的HipHop。

模式1:编译HipHop并直接运行它。

模式2:将HipHop编译到一个临时目录并从命令行运行已编译的程序。

模式3:将HipHop编译为临时目录并将编译后的程序作为Web服务器运行。

模式4:直接解释HipHop。

模式5:启动Web服务器或守护程序并在运行中解释HipHop。

如果你想创建扩展,你应该潜入文档:http://www.php.net/manual/en/internals2.php

但大多数情况下,YAGNI

+0

感谢您向我介绍YAGNI。尽管如此,请参阅我对原文的评论。我有兴趣学习东西,我在业余时间做这些事情。 – Gajus

+0

我们也在业余时间为您解答。维基页面说,你必须通过HipHop运行一切,而不仅仅是模块或库。如果你想要一段特定的代码进行优化,你必须创建一个PHP扩展(PECL)并用C++自己编写。 HipHop也有其他选择:http://www.php-compiler.net/benchmarks – greut