PHP代码重构工具

PHP代码重构工具,php,refactoring,Php,Refactoring,是否有支持重构PHP代码(重命名变量、提取方法、查找方法引用等)的工具?谢谢。pdtforeclipse支持一些基本的重构(据我所知)。您可以重命名类,并在引用它们时自动重命名它们,我认为您甚至可以移动文件,并更改它们的include/require引用。也许这只是因为我对重构的概念还比较熟悉,但我不喜欢让工具为我做这件事 我仍然更喜欢手动进行大多数重构,因为这会迫使我放慢速度,真正思考我正在做什么以及为什么要这样做。NetBeans IDE有一些重构功能,但它似乎并不总是有效。然而,我使用的是

是否有支持重构PHP代码(重命名变量、提取方法、查找方法引用等)的工具?谢谢。

pdtforeclipse支持一些基本的重构(据我所知)。您可以重命名类,并在引用它们时自动重命名它们,我认为您甚至可以移动文件,并更改它们的include/require引用。

也许这只是因为我对重构的概念还比较熟悉,但我不喜欢让工具为我做这件事


我仍然更喜欢手动进行大多数重构,因为这会迫使我放慢速度,真正思考我正在做什么以及为什么要这样做。

NetBeans IDE有一些重构功能,但它似乎并不总是有效。然而,我使用的是6.1和早期的PHP访问。我希望6.5在PHP中具有更好的重构功能。

尽管Netbeans 6.5将在未来的版本中推出,但它对PHP没有重构支持

PDT eclipse插件也不支持重构

Aptana也不支持重构。我也无法让“转到定义”工作

我现在使用搜索和替换。我也希望至少支持重命名函数。

是一个自动重构工具。它仍然有点不完整,但有一些基本的重构


除此之外,一个好的测试套件确实是重构的最佳工具,你可以拥有。

我最喜欢的重构工具仍然是good ol,它与超快速的文件搜索相结合。(提示:Alt+F7)我完全同意Mark Biek的回答,即您希望完全控制在何时何地替换内容

每当我需要进行重构时,我都会创建一个列表,列出我想要修改的文件,或者使用内置函数进行搜索,或者选择它们,然后将它们全部拖到EditPlus

Editplus可以使用普通文本匹配、正则表达式匹配或多行匹配,搜索并替换当前文件、所选内容或所有打开的文件。它真的让你完全控制:)

此外,对于代码重构来说,EditPlus的宏记录器也很方便(Ctrl+Q开始录制宏1-9,Alt+1-9播放宏)


一旦你掌握了窍门,你就知道你可以通过你的代码搜索一个变量,ctrl+shift+(home | | | | end | | | | | arrow键),删除,复制/粘贴,并使用键盘上的所有技巧,例如,在30秒内将一个CSV文件转换成一组SQL查询。

据我所知,唯一对PHP有重大重构支持的IDE来自PHP和EclipsePHP插件的制造商。虽然功能非常基本。据我所知,没有任何产品具有Resharper for C#等产品的功能。

我了解到,IDE Delphi for PHP将在计划于2009年初发布的代号为鳄鱼的版本中具有重构功能。有关详细信息,请参阅

我个人更喜欢PHPEclipseIDE作为我的主要开发工具。但我真的很怀念基本的“在项目中处处替换”重构

但是非常简单的find/sed命令可以轻松解决此问题:

find . -type f -name "*Controller.php" -print0 \
         | xargs -0 sed -i 's/string1/string2/g'
因此,智能地使用它,您可以查找引用、重命名、删除和对源代码进行任何类型的操作

顺便说一句:你甚至记不住所有这些参数和属性——只需键入一次,然后调用即可


希望这能有所帮助。

Zend Studio可以进行一些重构。

是一个简单、独立的PHP重构工具

我知道这是一个老生常谈的问题,但由于它是PHP重构工具中最好的工具之一,我想我会将我的新项目添加到列表中


我的很多设计目标都源于这里提到的其他项目的不足之处——它们被绑定到特定的IDE中,或者试图规定您的测试实践,或者需要大量死记硬背的手工劳动。我希望在Scisr中创造一个更好的整体体验。安装和运行起来很简单。它试图变得聪明,但不要太聪明。它完成了我发现最适合自动化的任务。享受吧

尝试IntelliJ的Web IDE。它现在处于EAP阶段(alpha/beta版),但我将它作为唯一的IDE使用了几个月,因此它非常稳定而且非常好。

刚刚发表了一篇关于Delphi for PHP下一版本的文章,在这里您可以看到重构引擎正在运行


来自Jetbrains的PHPStorm支持重构,

重命名重构适用于文件、函数、常量、类、属性、方法、参数以及局部和全局变量。 此外,还提供了以下重构:

  • 引入变量
  • 引入常数
  • 引入场
  • 内联变量
他们还提供一些免费的开源项目许可证

PHP重构浏览器是中所述重构浏览器的最新版本。它可能需要一些帮助(请提供帮助),但它支持几种常见的重构

在撰写本文时,浏览器支持:

  • 提取方法
  • 重命名局部变量
  • 将局部变量转换为实例变量
  • 重命名类和名称空间
  • 优化Use语句(特定于PHP)

有一个SublimiteText插件,它实际上可以工作。当我在看新代码时,我会应用一些简单的重构来帮助我掌握代码库。

我使用Netbeans 6.5,你可以做重命名方法之类的事情,但它不会修复其他文件中的引用,即使是在同一个项目中的文件中,这使得它几乎毫无用处。我使用的是Netbeans 6.7,它还可以工作……我正在使用6.9.1,我认为重构功能仍然局限于PHP中的字符串查找/替换。对于动态语言,重构能力总是有限的。您仍然无法执行右键单击c之类的操作