转换PHP到C ++代码

我正在寻找一种方法来将PHP代码转换为C ++。 我想这样做有几个原因:

主要原因:有很多很棒的PHP工具/软件,我很喜欢使用,并将它们合并到C ++ GUI或非GUI应用程序中

  1. 提高性能
  2. 避免依赖PHP库
  3. 避免公开共享主机环境的源代码
  4. 被C ++语言特性赋予权力,并使用像Qt C ++和Poco这样的框架

到目前为止,我发现:

http://sourceforge.net/projects/binaryphp

http://www.mibsoftware.com/php2cpp/

请分享你的想法和你知道的工具。 先谢谢你!

编辑:我也需要跨平台的可操作性和$$,语法糖function和接口良好的匹配。

编辑:请注意,上述2个工具使用2种不同的方法。 前者具有内置库来转换PHP程序代码并使其运行。 后者将PHP(逐字)转换为C ++。

这也可能在短时间内变得有趣:

https://developers.facebook.com/blog/post/2010/02/02/hiphop-for-php–move-fast/

这是什么使Facebook活着;)一种技术翻译和编译PHP到C + +将要开源。 我期望它真的得到很好的testing。

也许我不完全理解为什么你认为你需要这样做的背景,但我不认为你张贴的原因是特别引人注目的。

  1. 不是很多networking应用程序是CPU限制的,所以我不认为你会对性能的提升留下深刻的印象。 把它编译成本机代码不会让你的I / O或DB等待更短的时间。 有更好的方法来扩展一个Web应用程序比移动到C ++,其中大部分涉及减less您的脚本等待数据从数据库或磁盘(如分解您的数据库或移动数据到RAMcaching)的时间。

  2. 图书馆的依赖关系真的是一个问题吗? 许多最stream行的库现在都与PHP核心捆绑在一起,再加上其他的库通常都是安装的。 一旦你有了它,你就不会触摸它们,所以我不确定为什么这是转移到C ++的一个特别有说服力的理由。

  3. 实际上,这是一个非常糟糕的原因转移到C ++。 大多数共享主机环境将允许您在PHP环境中运行脚本,但是很less到没有(除非您正在查看VPS)将允许您运行任意二进制文件,就像使用C ++应用程序一样。 有更好的方法来控制共享环境中的源代码可读性,例如正确使用文件权限。 如果你担心客户窃取你的PHP代码,太糟糕了。 你可以尝试混淆你想要的一切,但是在一天结束的时候通常是毫无意义的。

  4. 你非常需要PHP提供哪些特定的C ++function? 说实话,你的平均PHP编码器的指针和内存分配的想法,吓倒了我。 PHP有非常好的框架,我build议你完全用尽所有这些选项,然后再改变整个代码库的语言,只是为了在特定框架中使用某些function。

  5. 你在你的评论中提到了跨平台的兼容性… PHP老实说会比C ++更容易。 PHP实现在各个平台上是相对标准化的(除了一些低级函数),而你很可能会在C ++中使用不同的编译器和系统调用。

经过大量研究,我find了doc/maketea.pdf和http/rosecompiler.org/ROSE_Tutorial/ROSE-0.9.4a-Tutorial.html 。 由于PHP源代码可以被parsing并转换为XML,所以将其转换为C ++只是XSLT的一个问题。 而且,PHPCompiler还支持源代码的插件和各种转换(基于AST转换)。 我认为现在应该足够了。

一些额外的参考:

  1. http://www.phpcompiler.org
  2. http://www.phpcompiler.org/doc/latest/devintro.html
  3. http://rosecompiler.org
  4. http://rosecompiler.org/ROSE_UserManual/ROSE-UserManual.pdf

感谢大家参与讨论!

Facebook hiphop现已开放一段时间: https : //github.com/facebook/hiphop-php/

1-3可以通过Zend编译器完成

http://www.zend.com/en/

4有点不可思议,因为不是Qt C ++的桌面UI框架?