用于PHP代码重构的工具

时间:2008-08-21 12:45:27

标签: php refactoring

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

15 个答案:

答案 0 :(得分:13)

Scisr是一个简单的,独立的PHP重构工具。

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

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

答案 1 :(得分:11)

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

另外,一个好的测试套件真的是重构的最佳工具,你可以拥有。

答案 2 :(得分:8)

Jetbrains的PHPStorm支持重构, http://www.jetbrains.com/phpstorm/index.html

重命名重构适用于文件,函数,常量,类,属性,方法,参数以及局部和全局变量。 以下重构也可用:

  • 介绍变量
  • 介绍常量
  • 介绍Field
  • 内联变量

他们也为开源项目提供了一些免费许可证!

答案 3 :(得分:5)

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

答案 4 :(得分:4)

https://github.com/QafooLabs/php-refactoring-browser

PHP重构浏览器是the good book中描述的重构浏览器的最新版本。它可以使用一些帮助(请提供帮助),但它支持几种常见的重构。

撰写时,浏览器支持:

  • 提取方法
  • 重命名本地变量
  • 将本地转换为实例变量
  • 重命名类和命名空间
  • 优化使用语句(特定于PHP)

有一个实际可行的SublimeText插件。当我查看新代码时,我将应用其中一些简单的重构来帮助我处理代码库。

答案 5 :(得分:3)

我个人更喜欢 PHPEclipse IDE作为我的主要开发工具。但我真的很想念基础“在项目中无处不在”的重构。

但非常简单的查找 / sed 命令可以轻松解决问题:

find . -type f -name "*Controller.php" -print0 \
         | xargs -0 sed -i 's/string1/string2/g'

因此,您可以智能地使用它来查找引用,重命名,删除以及使用源代码进行任何类型的操作。

BTW:你甚至不记得所有这些参数和属性 - 只需输入一次然后通过reverse-i-search调用它。

希望这有帮助。

答案 6 :(得分:2)

也许只是因为我仍然对重构的概念感到满意,但我不喜欢有一个工具为我做这件事。

我仍然喜欢手动进行大部分重构,因为它迫使我放慢速度并真正考虑我要移动的内容以及原因。

答案 7 :(得分:2)

我最喜欢的重构工具是EditPlusTotal Commander的超快速文件搜索相结合。 (提示:Alt + F7)我完全同意Mark Biek的回复,即您希望完全控制何时何地更换的内容。

每当我必须进行一些重构时,我通过使用内置函数进行搜索或者只是通过选择它们来创建我想要更改的文件的总命令中的列表,然后我将它们全部拖到EditPlus < / p>

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

另外,代码重构的代号是EditPlus的宏录制器(Ctrl + Q开始录制宏1-9,Alt + 1-9播放宏)。

一旦掌握了它,你知道你可以通过代码搜索变量,ctrl + shift +(home || end || arrow keys),删除,复制/粘贴并使用键盘魔法例如,喜欢在30秒内将CSV文件转换为一堆SQL查询。

答案 8 :(得分:2)

Zend Studio可以重构一下......

答案 9 :(得分:1)

在Netbeans 6.5中没有对PHP的重构支持,但是它将来会出现。

PDT eclipse插件也不支持重构。

Aptana也不支持重构。我也无法使用goto定义。

我最终使用搜索和替换。我也想至少重命名功能支持。

答案 10 :(得分:1)

我读到IDE Delphi for PHP将在定于2009年初发布的代号为Crocodile的版本中具有重构功能。有关详细信息,请参阅this link

答案 11 :(得分:1)

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

答案 12 :(得分:1)

刚刚发布了一篇关于下一版Delphi for PHP的文章,您可以在其中看到重构引擎的运行情况。

http://blogs.embarcadero.com/joseleon/2010/06/09/delphi-for-php-next-release-early-preview-15-refactoring/

答案 13 :(得分:0)

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

答案 14 :(得分:0)

据我所知,唯一对PHP有重要重构支持的IDE是来自PHP和Eclipse PHP插件的制造商的Zend Studio。虽然功能非常基础。我所知道的任何东西都没有像Resharper for C#等产品的功能。