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

将现有php类转换为Java的最佳方法是什么?

  •  8
  • WolfmanDragon  · 技术社区  · 16 年前

    我的任务是将几个php类转换为java类,这对我来说很快就成了一场噩梦。我了解基本的语言结构,它类似于C。所有的函数调用和类调用似乎都没有用,而且var可以在 !中间的表情! 这让我头晕目眩,哦,事实上没有“0”文档。

    什么是最好的 方法 (和/或) 工具 (和/或) 标准物质 将php转换为java代码?

    编辑:我必须将php转换为java有三个原因。

    1. 通常的原因,我的老板也告诉我。
    2. php太慢了,它正在运行 分钟 有时向服务器运行请求。
    3. php的扩展和维护是一场噩梦。(至少对我们这些强类型语言的人来说)
    15 回复  |  直到 16 年前
        1
  •  13
  •   PhiLho    16 年前

    你询问最佳实践。我相信,在你的情况下,一个好的做法是由他们愉快地提出的方法:使用自动化工具可能会产生糟糕的结果:垃圾进,垃圾出。..

    你已经有了代码:必要时分析它的大致内容。然后用Java重新创建它。这可能很耗时,但不一定比盲目转换更糟糕。您可以在途中记录,并可能使用此分析来找到有问题的部分。

        2
  •  11
  •   Pyrolistical    16 年前

    人是最好的工具。

    我会尝试重写php,将php的大部分功能删除为类似C的东西。然后,您将轻松地用Java重写。

    但我需要问,为什么需要转换php?你不能把php包装成可以从Java调用的东西吗?这样,您在转换时就不会添加任何错误。

        3
  •  2
  •   theman_on_vista    16 年前

    有人暗示Java不如PHP灵活:默认情况下,它实际上更灵活(因为核心API包含数千个类和内置功能)。你只需要学习这两种语言的核心概念,例如Java的自动装箱,为动态类型腾出空间。查看 http://www.javaworld.com 我目前正在把一个大型的API从PHP移植到Java,应该需要几天的时间。两个类,libcurl,json解析,也许还有一百个方法/函数。

        4
  •  2
  •   Community Mohan Dere    8 年前

    我在 PHP Optimization Tips 这个问题,我在这里再说一遍:如果你从静态环境(web服务器模块或FastCGI)运行PHP,请使用操作码缓存,例如 APC 否则,PHP会在每次请求时重新解释/重新编译您的代码!

        5
  •  2
  •   Ricardy    16 年前
        6
  •  2
  •   Argo    15 年前

    Caucho/Resin服务器在运行时将PHP代码转换为Java servlet!

        7
  •  1
  •   troelskn    16 年前

    我通常会使用php5servlet生成的类,这是tomcat&树脂。

    然后将类文件更改为Java。

    干杯

        8
  •  1
  •   ykaganovich Mike Samuel    16 年前

    根据PHP代码的不同,这可能是一项几乎不可能完成的任务。另一种方式要容易得多。PHP是一种非常动态的语言,你可以摆脱Java中不可能的事情。一个特别具有破坏性的事情是,PHP变量在执行过程中可能会改变类型。虽然很少使用,但可能会发生。此外,由于PHP是松散类型的,因此有很多隐式转换。有些是巧合,而另一些则对节目的意义很重要。此外,PHP代码并不像Java那样严格面向对象。即使在面向对象的PHP程序中,您通常也会看到一定程度的过程元素。这些不能直接映射到Java代码。

    作为Pyrolistical,我很好奇为什么你需要转换这段代码?如果它是遗留代码,那么保持PHP代码运行并通过某种服务接口(SOAP、RPC等)与之交互不是更好吗?然后,您可以随着时间的推移逐渐更换零件。

        9
  •  1
  •   Toby    16 年前
    1. 扔掉代码
    2. 用java重写
    3. ????
    4. 利润!
        10
  •  1
  •   Gunesh    15 年前

    为了完整起见,我应该指出JVM有一个PHP运行时。查看 Quercus .

    您可以考虑将当前的代码库留在PHP中,让它在JVM上运行。然后,您可以根据需要用Java重写代码。

        11
  •  0
  •   Markus Lausberg    16 年前

    我无法想象有这样的工具存在。 我用C++和Java做了类似的事情。这是一种痛苦,但最好的办法是自己去推动它。

    或者用C编写它,并使用jni warpper创建一个dll,以便从Java调用它。这应该是最快的方法。

        12
  •  0
  •   Peter Bailey    16 年前

    您可能可以用Reflection API编写一些内容来完成其中的一些工作,但您确实无法用函数体做任何事情——您最终会得到没有实现的存根类。

        13
  •  0
  •   charlesbridge    16 年前

    我一直在调查 Groovy 作为从PHP到Java的过渡语言。他们(Groovy开发人员)声称,它可以像java代码一样编译为java字节码。
    它也不那么严格,他们的网站上有几个翻译的例子。

        14
  •  0
  •   Stephane Grenier    16 年前

    听起来你正试图将过程化的PHP代码转换为OO代码库。

    这与其说是PHP到Java的问题,不如说是范式的转变。没有自动化的方法,这将是艰难的。特别是如果一个代码库编写得不好。

    顺便问一下,我也想知道你为什么要皈依?这只是表演吗?如果是这样,您是否无法解决性能问题。 我认为仅仅从一种语言转换到另一种语言并不能解决这个问题,你仍然需要找到瓶颈。

        15
  •  0
  •   Arthur Rodriquez    8 年前

    我只能找到两个:

    1. https://github.com/bafolts/java2php

    2. http://www.runtimeconverter.com/

    还有Caucho Resin,但它不是 确切地 转换器。它是php在Java中的实现。

    网上有很多关于numiton的东西,但他们的网站已经瘫痪了好几年了。