java - PHP 到 Java(使用 PtoJ)

标签 java php

我想将我们的代码库从编写糟糕的 PHP 代码转换为编写糟糕的 Java,因为我相信 Java 代码更容易整理。有什么好处和坏处,自己做过的,能不能推荐一下PtoJ对于大约 30 万行难看的代码的项目?提示和技巧是最受欢迎的;谢谢!

最佳答案

写得不好的 PHP 可能很难转换,因为 PHP 中的很多不好的东西在 Java 中根本不存在(反之亦然,所以不要像我说的那样理解 Java 是更好 - 我将远离那场口水战。

如果您谈论的是遗留 PHP 应用程序,那么您的代码很可能包含大量过程代码和内联 HTML,它们都无法很好地转换为 Java。

如果你真的不走运,你会遇到诸如 eval() 语句、动态变量名(使用 $$ 语法)、循环 include () 语句、对“register_globals”标志的依赖,甚至更糟。那种东西将完全阻止任何转换尝试。

你的另一个主要问题是在转换后调试结果将是 hell ,即使你有漂亮的代码开始。如果你想避免回归,你基本上需要仔细梳理两边的整个代码库。

如果您从这种类型的自动转换中获得令人满意的结果,唯一的情况是您从一个合理的潮汐代码库开始,至少主要是用最新的 OOP 代码编写的。

在我看来,您最好在转换之前进行重构练习。但是,当然,考虑到您的问题,那反而会打败重点。因此我的建议是将其固定在 PHP 中。 PHP 代码可以非常好,即使是糟糕的 PHP 代码也可以通过一些重构来完善。

[编辑]

在回答@Jonas 在评论中提出的问题时,“重构可怕的 PHP 代码的最佳方法是什么?”

这实际上取决于代码的性质。一个大的单一代码块(它描述了我见过的很多糟糕的 PHP)可能很难(如果不是不可能的话)实现单元测试。您可能会发现功能测试是您可以在旧代码库上编写的唯一一种测试。这些将使用 Selenium或类似的工具来通过浏览器运行代码,就好像它是用户一样。如果您可以编写一组可靠的功能测试,这有助于您保持信心,不会引入回归。

好消息是,拆开坏代码并重新构建它可以非常容易且令人满意。

我过去采用的方法是采用两阶段方法。

第一阶段将整体代码重写为质量不错的程序代码。这相对容易,新代码可以随手放入。这是大部分工作发生的地方,但您仍然会得到过程代码。只是更好的程序代码。

第二阶段:一旦您获得了大量质量合理的过程代码,您就可以将其再次重构为 OOP 模型。这必须等到以后,因为通常很难将旧的劣质 PHP 直接转换为一组对象。它还必须以相当大的 block 来完成,因为您将同时将大量代码移动到对象中。但是,如果您在第一阶段做得很好,那么第二阶段应该相当简单。

当您将其转化为对象后,您就可以开始认真考虑单元测试了。

关于java - PHP 到 Java(使用 PtoJ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6094996/

相关文章:

php - "mysqli select"准备语句中的 php 函数出错

java - 比较搜索中的 SimpleStringProperty

java - 如何将自定义菜单栏项放置在 map 菜单中的所需位置

java - 从服务器获取信息的线程被阻塞

java相当于php "fnum"unpack函数将十六进制转换为java中的float IEEE 754

php - 我如何计算循环并在字段中设置值

javascript - 我如何通过 $.ajax 调用使用成功函数

java - URISyntaxException 查询中的非法字符

Java:根据用户定义的函数生成随机数

php - MySQL 更新查询 - 竞争条件和行锁定会遵守 'where' 条件吗? (php, PDO, MySQL, InnoDB)