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

我的任务是将几个php类转换成java类,这很快就成了我的噩梦。 我理解基本的语言结构,它类似于C.它是所有函数调用和类调用似乎无处可去的事实,var可以在表达式!中间声明 这是旋转我的头,哦和零“0”文档的事实。

将php转换为java代码的最佳方法 (和/或) 工具 (和/或) 参考材料是什么?

编辑:有三个原因,我不得不将PHP转换为java。

  1. 通常的原因,我的老板也告诉我了。
  2. php太慢了,有时需要几分钟才能向服务器运行请求。
  3. php是一个扩展和维护的噩梦。(至少对于我们强大的类型语言类型)

你问最佳实践。 我相信在你的案例中一个好的做法是人类愉快地提出的方法:使用自动化工具可能会产生不好的结果:垃圾进入,垃​​圾出…

你有代码:如有必要,可以用粗线分析它。 并在Java中重新创建它。 这可能是耗时的,但不一定比盲目转换更糟糕。 您可以在途中记录,也许可以使用此分析来查找有问题的部分。

人是最好的工具。

我会尝试重写PHP以删除大多数的PHPfunction到C之类的东西。 然后你可以轻松地用Java重写。

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

  1. 抛弃代码
  2. 在java中重写
  3. ????
  4. 利润!

我在PHP优化提示问题中说过这一点,我将在此处再说一遍:如果您从静态环境(Web服务器模块或FastCGI)运行PHP,请使用操作码缓存,例如APC 。 否则,PHP会在每次请求时重新解释/重新编译代码!

查看http://www.numiton.com

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

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

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

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

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

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

我通常会使用php5servlet生成的类,这是一个可以在tomcat和resin中使用的jar。

然后将类文件更改为Java。

干杯

我无法想象存在这样的工具。 我做了类似的C ++和Java。 这是一种痛苦,但最好是通过自我来实现。

或者用C编写并用jni warpper创建一个dll来从Java调用它。 这应该是紧固方式。

您可能可以使用Reflection API编写一些内容来执行此操作,但您实际上无法对函数体执行任何操作 – 您最终会得到没有实现的存根类。

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

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

这不是PHP到Java的问题,而是范式的转变。 没有自动化的方法,它会变得粗糙。 特别是如果一个代码库写得很糟糕。

顺便说一句,我也会为什么要转换? 这只是表演吗? 如果是这样,您无法解决性能问题。 我不认为只是从一种语言转换到另一种语言会解决它,你仍然必须找到瓶颈。

我只能找到两个:

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

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

还有Caucho树脂,但它不完全是转换器。 它是Java内部的一个php实现。

互联网上有很多关于numiton的内容,但他们的网站已经停播了好几年了。