代码之家  ›  专栏  ›  技术社区  ›  Eridal

将Java编译成PHP?[副本]

  •  0
  • Eridal  · 技术社区  · 5 年前

    这个问题已经有了答案:

    …与GWT类似,但PHP作为输出(而不是JavaScript)

    因此,我可以在Java中执行代码,而WebServer执行PHP。

    ——

    我不想把Java和PHP混合在一起。在运行时只会有PHP,但在编译时应该只有Java。 就像GWT一样。它需要Java并将其转换为浏览器的JavaScript。

    这只是为了在编译时充分利用全类型语言。

    2 回复  |  直到 11 年前
        1
  •  3
  •   Arjan Tijms Mike Van    11 年前

    PHP和Java是非常不同的动物。将Java翻译成PHP很可能是技术上的困难,对于一个足够大到值得的Java / Java EE功能的子集来说,实现这一点几乎是不可能的。

    你也可以做得更好:

    • 学习和使用PHP,
    • 在Java中实现整个服务器,或
    • 使用一个允许您从PHP调用嵌入式JVM的桥接器;例如, palava (谢谢@wili)。

    编辑

    @NHBH评论如下:

    PHP与Java非常相似。它支持对象定向,可以从命令行执行而不需要Web请求,并且可以使用ACP在请求之间保持全局状态。因此,编写一个从Java到PHP的交叉编译器是相当容易的。当然,端口API调用需要大量的工作,所以我怀疑这是否值得麻烦。

    Java和(OO)PHP之间有明显的相似之处。但也存在着根本性的差异,使得翻译成为问题:

    • Java原始/内置类型及其PHP等价物之间存在根本区别。Java整数和浮点类型不会因为范围考虑而直接映射。Java字符串不映射,因为PHP字符串使用8位字符。当翻译成PHP时,这些问题会导致简单的Java代码工作正常。

    • Java的线程、同步和底层内存模型可能是不可译的。

    • Java动态类加载、反射、安全和对象序列化API可能是不可译的。(在最后一种情况下,我将声明只有当映射生成与字节对字节兼容的序列化时,映射才是完整的。)

    • 为Java API的广度创建桥接API将是一个 巨大的 任务。

    • 与本地PHP接口可能导致问题,例如Java调用PHP,反之亦然,以及处理PHP代码创建的对象/值的Java代码。

    总之,一个全功能的Java到PHP翻译器大概是不可能的。你希望达到的最好的结果是一个部分翻译程序,它只适用于现实世界Java代码的一小部分。

        2
  •  2
  •   thomasrutter    14 年前

    为什么你不能只运行Tomcat之类的?

    除非有一个特定的原因,你不能使用Java服务器,看来这样做是没有意义的,也是一个很大的麻烦。Java和PHP是如此不同,以至于我无法想象一个可以从一个翻译到另一个的功能的子集将是非常有用的。