将PHP转换为C ++代码

时间:2009-07-07 02:40:03

标签: php c++ code-translation

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

主要原因:我喜欢使用大量优秀的PHP工具/软件并将其整合到C ++ GUI或非GUI应用程序中

  1. 提升表现
  2. 避免依赖PHP库
  3. 避免在共享托管环境中披露源代码
  4. 通过C ++语言功能获得授权并使用Qt C ++和Poco等框架
  5. 到目前为止,我发现:

    http://sourceforge.net/projects/binaryphp

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

    请分享您认识的想法和工具。提前谢谢!

    修改 我还需要跨平台的可操作性和$$,语法糖函数和接口的良好匹配。

    修改 请注意,上述2种工具使用2种不同的方法。前者有内置的库来转换PHP程序代码并使其运行。后者(逐字逐句)从PHP翻译成C ++。

5 个答案:

答案 0 :(得分:37)

也许我并不完全了解你认为你需要这样做的背景,但我不认为你发布的理由特别引人注目。

  1. 没有很多网络应用受CPU限制,所以我认为你不会对性能的提升印象深刻。将其编译为本机代码不会使您的I / O或DB等待更短。有更好的方法来扩展Web应用程序而不是转移到C ++,其中大多数都涉及减少脚本等待来自数据库或磁盘的数据的时间(例如分片数据库或将数据移动到RAM缓存中)。 p>

  2. 库依赖性真的是一个大问题吗?许多最流行的库现在与PHP核心捆绑在一起,而且任何其他库通常都很容易安装。一旦你有了它们,你就不会碰它们,所以我不确定为什么这是一个特别令人信服的理由转向C ++。

  3. 这实际上是转向C ++的一个非常糟糕的原因。大多数共享托管环境都允许您在PHP环境中运行脚本,但很少甚至没有(除非您正在查看VPS)将允许您运行任意二进制文件,就像您使用C ++应用程序一样。有更好的方法来控制共享环境中的源可读性,例如正确使用文件权限。如果你担心客户窃取你的PHP代码,那么太糟糕了。您可以尝试对所有内容进行模糊处理,但在一天结束时通常没有意义。

  4. PHP没有提供哪些特定的C ++功能?说实话,你的普通PHP编码器捣乱指针和内存分配的想法吓坏了我。 PHP有很好的框架,我建议你在转向改变整个代码库的语言之前完全用尽所有这些选项,只是为了特定框架中你喜欢的一些功能。

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

答案 1 :(得分:26)

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

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

这是让facebook活着的原因;) 一种翻译和技术的技术编译php到C ++,并将开源。 我希望它能够得到很好的测试。

答案 2 :(得分:8)

经过大量研究,我发现了http://www.phpcompiler.org/doc/maketea.pdfhttp://rosecompiler.org/ROSE_Tutorial/ROSE-0.9.4a-Tutorial.pdf。由于可以解析PHP源代码然后将其转换为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
  5. 感谢大家参与讨论!

答案 3 :(得分:8)

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

答案 4 :(得分:3)

1-3可以由Zend编译器完成

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

4有点奇怪,因为Qt C ++不是桌面UI框架吗?