当前位置: 首页 > news >正文

java重构php_用于PHP代码重构的工具

用于PHP代码重构的工具

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

15个解决方案

13 votes

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

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

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

Ian Greenleaf Young answered 2019-06-16T04:37:51Z

11 votes

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

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

troelskn answered 2019-06-16T04:38:23Z

8 votes

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

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

介绍变量

介绍常数

介绍Field

内联变量

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

Cedric answered 2019-06-16T04:39:30Z

5 votes

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

Ross answered 2019-06-16T04:39:55Z

4 votes

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

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

在编写时,浏览器支持:

提取方法

重命名局部变量

将本地转换为实例变量

重命名类和命名空间

优化使用语句(特定于PHP)

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

Joe Frambach answered 2019-06-16T04:41:19Z

3 votes

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

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

Mark Biek answered 2019-06-16T04:41:51Z

3 votes

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

但是非常简单的find / sed命令可以很容易地解决它:

find . -type f -name "*Controller.php" -print0 \

| xargs -0 sed -i 's/string1/string2/g'

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

顺便说一句:你甚至不记得所有这些参数和属性 - 只需输入一次然后通过反向搜索调用它。

希望这可以帮助。

Nikita Fedyashev answered 2019-06-16T04:42:40Z

2 votes

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

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

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

此外,代码重构派上用场的还有EditPlus的宏录制器(Ctrl + Q开始录制宏1-9,Alt + 1-9播放宏)。

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

SchizoDuckie answered 2019-06-16T04:43:38Z

2 votes

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

matthy answered 2019-06-16T04:44:03Z

1 votes

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

PDT eclipse插件也不支持重构。

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

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

grom answered 2019-06-16T04:44:49Z

1 votes

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

Shunyata Kharg answered 2019-06-16T04:45:15Z

1 votes

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

Nishi answered 2019-06-16T04:45:39Z

1 votes

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

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

qadram software answered 2019-06-16T04:46:12Z

0 votes

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

Brian Warshaw answered 2019-06-16T04:46:37Z

0 votes

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

orj answered 2019-06-16T04:47:03Z

相关文章:

  • java运行环境配置心得_java环境变量心得
  • chip-seq三个生物学重复样品处理——IDR
  • java绘制图形和文本一_java绘制图形和文本
  • CHIP-SEQ 芯片分析时,对于来自重复实验的数据,怎样进行MACS peaks calling 分析?
  • java end()用法_int regionEnd()
  • CHIP-seq 分析笔记
  • Java默认bigdecimal初始值_BigDecimal精度问题 and double基础类型默认小数位置问题
  • rna-seq分析流程 全套
  • java boxed_Java中的DoubleStream boxed()方法
  • FastQC原始安装
  • java getscheme_外部开启Activity新姿势(scheme)
  • 序列比对 hisat2
  • java 多线程 安全 源码_Java多线程理解:线程安全的集合对象
  • dir file list.file list.dirs
  • 后缀是php,怎么修改php后缀
  • 2017届校招提前批面试回顾
  • 345-反转字符串中的元音字母
  • 78. Subsets
  • Golang-长连接-状态推送
  • javascript 总结(常用工具类的封装)
  • mysql 5.6 原生Online DDL解析
  • spring security oauth2 password授权模式
  • VuePress 静态网站生成
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 力扣(LeetCode)56
  • 设计模式走一遍---观察者模式
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 用Canvas画一棵二叉树
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #pragma data_seg 共享数据区(转)
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (3)选择元素——(17)练习(Exercises)
  • (arch)linux 转换文件编码格式
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (论文阅读11/100)Fast R-CNN
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • .apk文件,IIS不支持下载解决
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .equals()到底是什么意思?
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net core Swagger 过滤部分Api
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net framework4与其client profile版本的区别
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NetCore 如何动态路由
  • /run/containerd/containerd.sock connect: connection refused
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @Bean注解详解
  • @test注解_Spring 自定义注解你了解过吗?
  • [AIGC] 使用Curl进行网络请求的常见用法