昨天Facebook发布了HipHop,一个从php到c ++的源代码转换器。 php函数和结构的集合比标准的php更受限制。
当前流行的php框架(ZF,CakePHP,symfony)是否与HipHop兼容?如果没有,这些框架的哪些部分不可用?
答案 0 :(得分:9)
如果我没弄错的话,HipHop尚未发布 - 即使wiki page链接的Facebook annoucement yesterday尚未发布。
所以,现在要回答起来有点困难。
我想这一切都取决于:
eval
这样的东西答案 1 :(得分:5)
至少ZF和Symfony用于企业级应用程序,很有可能它们将与HipHop一起运行。如果不是现在,那么迟早。但是,问题不在于它们是否可以运行这些框架,而是支持IT架构的样子。
HipHop用于扩展Facebook等大型多服务器高流量网站。在常规Web应用程序中,您可能无法获得优势。继续使用memcache和APC。
参见以下相关文章:
答案 2 :(得分:2)
虽然我确信我们大多数人都对HipHop会是什么感到好奇,但我知道它不会替代PHP - 它是一个非常小众的产品:除非您运行的是大型服务器场,否则性能优势与维护成本是不合理的。
对某些人来说,使用编码的PHP可能是一个有趣的替代方案 - 但这再次引入了更大的维护开销。编译PHP看起来很有意义的唯一低容量场景是嵌入式设备(软件存在以支持硬件而不是反之亦然)和非常高安全性的安装(其中不是一个好主意)有翻译)。
能够说出PHP软件能用它做什么还为时尚早。然而,即使一旦成立,我也希望看到来自任何供应商的坚定承诺,他们在我转换之前将在未来明确支持HipHop。
下进行。
答案 3 :(得分:2)
我不会重复已经说过的内容,我只想补充说,只要HipHop发布,您就可以指望开源社区为您喜欢的框架提交补丁,以增强与HipHop的兼容性。
此外,测试您最喜欢的框架是否兼容的一个好方法是使用HPHPi启动测试套件(然后您知道在哪里集中修补工作;)。
答案 4 :(得分:2)
搜索'eval'会产生很多误报,因为你会在评论中点击“evaluate”,或者如果搜索不区分大小写,则会返回escapeValue等。
如果你在ZF 1.11中搜索'eval(',你会在第59行的Zend / Serializer / Adapter / PhpCode.php中找到,在一个反序列化存储的PHP代码的方法中。该方法不是一个部分MVC体系结构,db组件,实际上并没有在框架中的任何其他地方使用(Zend_Serializer_Adapter_PhpCode没有在代码库中的任何其他地方实例化)。
因此,如果eval打破了您的ZF-Hip Hop应用程序,请不要在您的消费者代码中使用Zend_Serializer_Adapter_PhpCode或eval。
答案 5 :(得分:1)
简单回答:我认为不会。
刚在hiphop页面上看到这个:https://github.com/facebook/hiphop-php/wiki/
“您继续使用更简单的PHP进行编码,然后HipHop以语义等效的方式执行您的源代码并牺牲一些很少使用的功能 - 例如eval() - 以换取提高的性能。”
在ZF 1.9上搜索'eval'并且有超过100次出现。