五款PHP代码重构工具推荐

在软件工程学里,重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码。软件重构需要借助工具完成,而重构工具能够修改代码同时修改所有引用该代码的地方。本文收集了五款出色的PHP代码重构工具,以帮助你完善更加优秀的项目。

  1. Rephactor

  Rephactor是一款命令行重构工具,这是一款自动化工具,允许开发者以一种简洁的方式在不同的代码库中修改源码。

  主要功能:

保证重构的可逆性—— 一旦发现问题,代码是可逆的,可以回溯到前一个版本。
查找替换功能—— 普通查找替换,方法重命名,类重命名,正则表达式模式的替换。
所有操作完成后,均基于SimpleTest Aperiplus进行测试,并保证测试的覆盖率。
集成Phemto ,保证类的相关性测试。

  2. Scisr

  Scisr是一款利用PHP编写的重构工具。项目托管在GitHub上。基于GPL许可证下发行。

  使用方法:

  类的重命名:

代码如下:

$ scisr rename-class OldName NewName [files]

  修改方法:

代码如下:

$ scisr rename-method OwningClassName oldMethodName newMethodName [files]

  文件重命名:

代码如下:

$ scisr rename-file old/file_name new/dir/new_file_name [files]

  重命名类和文件:

代码如下:

$ scisr rename-class-file OldClassName NewClassName [files]

  3. PHP Refactoring Browser

  这是一款PHP 代码的重构工具,通过生成diffs来描述重构的步骤,避免重构过程中的简单错误,该工具非常棒。项目托管在GitHub上。

  使用库:

PHP Parser by Nikic
PHP Token Reflection from Ondřej Nešp
  重构浏览器数据主要包含以下几个方面:

补丁——支持基于更改文件操作创建补丁;
重构——包含实际重构域和适配第三方库;
集合——基于PHP数组可靠添加集合语义。目前包含一组类型。

  4. PhpStorm

  PhpStorm是由JetBrains公司开发的一款PHP IDE富应用,同时支持重构。PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化调试功能。

  目前,发布了PhpStorm 7版本,新版本支持PHP5.5;改进PHP语法着色性能;Vagrant、SSH 控制&远程工具;支持Drupal & PHP框架;改进调试和测试性能。

  PhpStorm的主要特性:

智能PHP编码编辑器;
代码质量分析;
支持调试/测试;
支持HTML/CSS/JavaScript编辑器;
支持跨平台。

  5. Zend Studio

  Zend Studio是Zend Technologies开发的PHP语言集成开发环境。支持HTML和JS标签,但只对PHP语言提供调试支持。

  主要特性:

具备功能强大的专业编辑工具和调试工具;
支持PHP语法高亮显示、语法自动填充功能,支持语法自动缩排和代码复制功能;
支持书签功能;
内置一个强大的PHP代码调试工具;
支持本地和远程两种调试模式,支持多种高级调试功能。

(0)

相关推荐

  • 用PHP实现维护文件代码

    PHP有很多与文件系统相关的函数,不仅可以帮助你打开文件,还可以显示目录内容.移动文件等.很多人甚至使用PHP写出了基于Web的文件管理器. 首先需要提醒一些关于文件路径的东西:在Windows你可以在文件路径中使用斜线"/"或反斜线"\",而其他操作系统仅使用"/".出于兼容性考虑,以下实例使用"/"的表示方法: 下面的简单脚本显示了一个基本的目录列表.注释在代码中并解释了每一步: <? /* 在变量 $dir_nam

  • PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式

    思维导图 点击下图,查看大图. 介绍 条件逻辑有可能十分复杂,因此本章提供一些重构的手法,专门用来简化它们. 全文简述(你可直接跳过下面的内容) 核心重构:Decompose Conditional--分离"转辙逻辑"(switching logic)和"操作细节"(details)分离. 多处测试有相同结果:Consolidate Conditional Expresssion 条件代码中去掉重复成分:Consolidate Duplicate 标识特殊情况:Re

  • 使用PHP维护文件系统

    PHP有很多与文件系统相关的函数,不仅可以帮助你打开文件,还可以显示目录内容.移动文件等.很多人甚至使用PHP写出了基于Web的文件管理器. 首先需要提醒一些关于文件路径的东西:在Windows你可以在文件路径中使用斜线"/"或反斜线"\",而其他操作系统仅使用"/".出于兼容性考虑,以下实例使用"/"的表示方法: 下面的简单脚本显示了一个基本的目录列表.注释在代码中并解释了每一步: <? /* 在变量 $dir_nam

  • PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用

    思维导图 介绍 前几篇系列文章,我比较关注的是<PHP 杂谈<重构-改善既有代码的设计>之一 重新组织你的函数>,但是我觉得我还是没有说清楚,我自己也有很多不理解的地方,而且这篇是我的第一篇这方面的文章,有很多的纰漏,所以我会经常性的去做修改,如果大家有好的意见不妨告知一.二. 今天谈得是"接口",此接口非"Interface",而是一个统称.我们一般可以把供别人使用的函数或者url(一般是用于提供数据)叫接口.--可能还有别的意思,毕竟我现

  • PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据

    思维导图 介绍 承接上文的PHP 杂谈<重构-改善既有代码的设计>之 重新组织你的函数继续重构方面的内容. 这章主要针对数据的重构. 1.争论的声音--直接访问Field还是通过函数(Accessor)访问Field 2.修改Array为Object:当你看到一个Array很像一个数据结构,你可以使用Replace Array with Object,把Array变成一个对象.--数据结构更清晰. 专业术语 accessor:访问者,存储器--在本文翻译为"函数" dumb

  • PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性

    思维导图 索引: Ø Move Method(搬移函数) Ø Move Field (搬移值域) Ø Extract Class (提炼类) Ø Inline Class (将类内联化,就是把当前的类合并到其他类中) Ø Hide Delegate (隐藏委托关系) Ø Remove Middle Man ( 移除中间人) Ø Introduce Foreign Method (引入外加函数) Ø Introduce Local Extension (引入本地扩展) 介绍 承接上文PHP 杂谈<

  • rephactor 优秀的PHP的重构工具

    PHP框架可以是单一入口,完全面向对象的,完全基于类的MVC模式.但是,我们面对大量的旧的代码,或即便是新的代码,也不尽然完全符合面向对象的原则,符合设计模式.小的应用无妨.但如果面对大型应用,则必然是一个不小的疼痛!! 怎么办?很多人总会面临这一切,PHP代码需要重构.(当然,你要是能明白我所说的这一切,那你肯定是看过<重构--改善既有代码的设计>这一本书) 看看这个链接:http://zh-cn.w3support.net/index.php?db=so&id=100876 我们就

  • PHP代码维护,重构变困难的4种原因分析

    本文分析讲述了PHP代码维护,重构变困难的4种原因.分享给大家供大家参考,具体如下: 代码维护,重构是件很令人不爽的一件事.以下几种情况,会让代码维护和重构变得很困难. 1. 项目开始时,大家规定好一些代码规范,在一定的规范下进行开发,但是人的思想是不一样的,也就是说每个功能不同的人实现的逻辑可能会有这样那样的不同,导致了一些人不愿意去看别人代码,要改别人代码,首先要了解这个人当时是怎么想的,他的逻辑是怎么样的.所以有很多人的想法是有那看别人代码的时间,我就重新做好了.这种想法不要有,看别人代码

  • PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数

    思维导图 点击下图,可以看大图. 介绍 我把我比较喜欢的和比较关注的地方写下来和大家分享.上次我写了篇<php 跟老大的对话>.还是有很多疑问,这书帮了我不少的忙. 如果你比较繁忙,或者懒得看文字,建议你直接看截图,也会有很大的收获的.你可以通过比较截图中的代码就能知道孰优孰劣了. 代码部分我为什么用图呢?因为我经常用手机看代码,博客园的代码在手机里乱七八糟的,还是看图比较舒服. 专业术语 我们毕竟是用英文字母编码,所以用一些英语单词,更能显示出我们的专业性.以下的英文单词,你如果掌握了,与其

  • 五款PHP代码重构工具推荐

    在软件工程学里,重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码.软件重构需要借助工具完成,而重构工具能够修改代码同时修改所有引用该代码的地方.本文收集了五款出色的PHP代码重构工具,以帮助你完善更加优秀的项目. 1. Rephactor Rephactor是一款命令行重构工具,这是一款自动化工具,允许开发者以一种简洁的方式在不同的代码库中修改源码. 主要功能: 保证重构的可逆性-- 一旦发现问题,代码是可逆的,可以回溯到前一个版本. 查找替换功能-- 普通查找替换,方法重命名,类重

  • 程序员喜欢的5款最佳代码比较工具

    俗话说:三句不离本行,对于程序员这个可爱的群体来说也是一样,即使面对无休无止的编程工作,程序员们依旧任劳任怨的埋头苦干,梦想着用自己码下的代码改变世界.工欲善其事,必先利其器,每一位程序员都有自己私藏的编程必备工具,接下来小编就给大家推荐5款程序员最佳的代码比较工具. 一:Beyond Compare 推荐:★★★★★ Beyond Compare可以很方便地对比出两份源代码文件之间的不同之处,相差的每一个字节用颜色加以表示,查看方便,支持多种规则对比. Beyond Compare选择最好的方

  • 5款实用的python 工具推荐

    Python Tutor Python Tutor 是由 Philip Guo 开发的一个免费教育工具,可帮助学生攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程.通过这个工具,教师或学生可以直接在 Web 浏览器中编写 Python 代码,并逐步可视化地运行程序.如果你不知道代码在内存中是如何运行的,不妨把它拷贝到Tutor里可视化执行一遍,加深理解. 地址:http://www.pythontutor.com/ IPython IPython 是一个 for Human

  • 10款最佳Python开发工具推荐,每一款都是神器

    在人工智能开启的时代,Python作为人工智能的首选语言,前景可以预见.因此学习Python的人越来越多.不过,很多初学Python的小白都一定有过这样的体验,因为没有好用的Python开发工具而吃了很多苦头.工欲善其事必先利其器,这道理只有在实践中才会深有体会.那么初Python用什么工具好?各个开发工具又有哪些特点?本文我就以上的问题,为初学者们介绍一下比较受欢迎且好用的工具. 一.最强终端:Upterm 本来想推荐fish或者zsh,但其实这两个我也主要是贪图自动补全这个特性.最近在用的这

  • PHP代码重构方法漫谈

    本文实例分析了PHP代码重构方法.分享给大家供大家参考,具体如下: 随着 PHP 从一种简单的脚本语言转变为一种成熟的编程语言,一个典型的 PHP 应用程序的代码库的复杂性也随之增大.为了控制对这些应用程序的支持和维护,我们可以使用各种测试工具来自动化该流程.其中一种是单元测试,它允许您直接测试所编写代码的正确性.然而,通常遗留代码库是不适合进行这种测试的.本文将介绍对包含常见问题的 PHP 代码的重构策略,以便简化使用流行的单元测试工具进行测试的过程,同时减少改进代码库的依赖性. 简介 回顾

  • 七种Python代码审查工具推荐

    虽然Python语言可谓目前最为灵活的开发语言之一,但是开发人员往往会滥用其灵活性,甚至会违反相关的标准.因此,Python代码也经常会出现如下常见质量问题: 导入了一些未曾用到的模块 函数在各种调用中缺少参数 缺少适当的格式缩进 在圆括号.方括号或大括号的前后缺少恰当的空格 显然,上述问题不但会影响代码的可读性,而且会使得代码的审查工作变得更为复杂.为此,我们需要通过诸如PyLint或Flake8 之类的静态分析工具来解决此问题,并减少各种可能出现的误报现象. 与此同时,随着软件开发团队规模的

  • 5款Python程序员高频使用开发工具推荐

    很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用频率比较高的5款开发工具推荐给大家,希望对大家的工作和学习有帮助. 一.最强终端:Upterm 本来想推荐 fish 或者 zsh,但其实这两个我也主要是贪图自动补全这个特性.最近在用的这个 Upterm 其实很简单好用,它是一个全平台的终端,可以说是终端里的 IDE,有着强大的自动补全功能.之前的

  • php开发工具有哪五款

    由于最近小编要自学php,所以整理了一些常用的php开发工具,给大家分享一下: 1.EditPlus     EditPlus是一套功能强大,可取代记事本的文字编辑器,拥有无限制的Undo/Redo.英文拼字检查.自动换行.列数标记.搜寻取代.同时编辑多文件.全屏幕浏览功能.对于很多php程序来说,EditPlus 非常简单好用.同时EditPlus也是一款好用的HTML编辑器,除了可以颜色标记HTML Tag (同时支持C/C++.Perl.Java)外,还内建完整的HTML和CSS1指令功能

  • 五款常用mysql slow log分析工具的比较分析

    启用 slow log 有两种启用方式:1, 在my.cnf 里 通过 log-slow-queries[=file_name] 2, 在mysqld进程启动时,指定--log-slow-queries[=file_name]选项 比较的五款常用工具mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter mysqldumpslow, mysql官方提供的慢查询日志分析工具. 输出图表如下: 主要功能是, 统

  • 打造一款代码命名工具的详细教程

    你是否还在为代码命名而纠结不已? here are only two hard things in Computer Science: cache invalidation and naming things.-- Phil Karlton 那么如何更好的命名呢? 是否有好的工具可以支持我们命名呢?网上搜索一圈没有发现满意的,于是自己动手丰衣足食,https://jadepeng.gitee.io/code-naming-tool/. 使用方法: 打开网页后,在中文输入框中输入 中文命名,然后回

随机推荐