PHP代码重构工具

PHP代码重构工具

Tools for PHP code refactoring

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


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

我知道这是一个老问题,但是由于它是PHP重构工具最好的缺点之一,所以我想将新项目添加到列表中。

我的许多设计目标都是由于此处提到的其他项目的不足而产生的-它们与某些IDE绑定在一起,或者试图指示您的测试实践,或者需要大量死于繁琐的体力劳动。我希望在Scisr中创造一个更好的整体体验。安装和运行很简单。它试图变得聪明,但又不是太聪明。它完成了我发现最适合自动化的任务。请享用!


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

否则,一个好的测试套件确实是重构的最佳工具。


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

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

  • 介绍变量
  • 介绍常数
  • 介绍领域
  • 内联变量

他们还提供了一些免费的开源项目许可!


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


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

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

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

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

有一个SublimeText插件可以正常工作。在查看新代码时,我将应用一些简单的重构来帮助我掌握代码库。


我个人更喜欢PHPEclipse IDE作为我的主要开发工具。但是我真的很想念在那里重构的基本"替换项目中的所有地方"。

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

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

因此,您可以明智地使用它来查找引用,重命名,删除和使用源代码进行各种操作。

顺便说一句:您甚至都不记得所有这些参数和属性-只需键入一次,然后通过反向i搜索将其调用。

希望这可以帮助。


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


我最喜欢的重构工具还是与Total Commander的超快速文件搜索结合使用的良好的EditPlus。 (提示:Alt + F7)我完全同意马克·比耶克的回答,您希望完全控制何时何地更换什么。

每当我需要进行一些重构时,我都会在总指挥官中创建要更改的文件的列表,方法是使用内置函数搜索或仅选择它们,然后将它们全部拖至EditPlus

Editplus可以使用常规文本匹配,正则表达式匹配或多行匹配来搜索和替换当前文件,选区或所有打开的文件。它确实可以让您完全控制:)

另外,用于代码重构的方便工具是EditPlus的Macro Recorder(Ctrl + Q键开始记录宏1-9,Alt + 1-9开始回放宏)。

一旦掌握了窍门,您就知道可以通过代码搜索变量ctrl + shift +(home || end ||箭头键),删除,复制/粘贴并使用键盘向导喜欢的所有方法,例如,在30秒内将CSV文件转换为一堆SQL查询。


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

我仍然更喜欢手动执行大多数重构,因为这会迫使我放慢速度,并真正考虑我要移动的内容以及原因。


刚刚发布了有关下一版PHP的Delphi的文章,您可以在其中看到重构引擎的作用。

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


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


据我了解,PHP的IDE Delphi将在计划于2009年初发布的代号为Crocodile的版本中具有重构功能。有关详细信息,请参见此链接。


Netbeans 6.5中没有对PHP的重构支持,不过它会在将来的版本中提供。

PDT eclipse插件也不支持重构。

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

我最终使用搜索并当前替换。我也至少希望重命名功能支持。


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


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


推荐阅读