当前位置:  开发笔记 > 编程语言 > 正文

将PHP转换为C++代码

如何解决《将PHP转换为C++代码》经验,为你挑选了4个好方法。

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

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

    提高性能

    避免依赖PHP库

    避免在共享托管环境中公开源代码

    要获得C++语言特性的支持,并使用Qt C++和Poco等框架

到目前为止,我发现:

http://sourceforge.net/projects/binaryphp

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

请分享您的想法和工具.先感谢您!

编辑: 我还需要跨平台的可操作性和$$,语法糖功能和接口的良好匹配.

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



1> Bob Somers..:

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

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

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

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

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

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


随着5.3.0的发布,我认为你所讨论的许多低级功能已经与Windows接口,在最新的VC9编译版本中,它们将UNIX转换为Windows转换层并直接调用Windows接口.

2> naugtur..:

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

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

这是让facebook活着的原因;)一种将PHP转换为C++并将其转换为开源的技术.我希望它能够得到很好的测试.



3> Viet..:

经过大量研究,我找到了http://www.phpcompiler.org/doc/maketea.pdf和http://rosecompiler.org/ROSE_Tutorial/ROSE-0.9.4a-Tutorial.pdf.由于可以解析PHP源代码然后将其转换为XML,因此将其转换为C++只是XSLT的问题.此外,PHPCompiler还支持插件和源代码的各种转换(基于AST转换).我认为现在应该足够了.

一些额外的参考:

    http://www.phpcompiler.org

    http://www.phpcompiler.org/doc/latest/devintro.html

    http://rosecompiler.org

    http://rosecompiler.org/ROSE_UserManual/ROSE-UserManual.pdf

感谢大家参与讨论!



4> bslima..:

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

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有