五款PHP代码重构工具推荐


Posted in PHP onOctober 14, 2014

在软件工程学里,重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码。软件重构需要借助工具完成,而重构工具能够修改代码同时修改所有引用该代码的地方。本文收集了五款出色的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

五款PHP代码重构工具推荐

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代码调试工具;
支持本地和远程两种调试模式,支持多种高级调试功能。

PHP 相关文章推荐
理解和运用PHP中的多态性[译]
Aug 02 PHP
PHP程序开发范例学习之表单 获取文本框的值
Aug 08 PHP
PHP Class&Object -- 解析PHP实现二叉树
Jun 25 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
Linux环境下php实现给网站截图的方法
May 03 PHP
PHP简单实现上一页下一页功能示例
Sep 14 PHP
thinkPHP5.0框架自动加载机制分析
Mar 18 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
php自动加载代码实例详解
Feb 26 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 #PHP
php 模拟 asp.net webFrom 按钮提交事件实例
Oct 13 #PHP
ThinkPHP表单自动验证实例
Oct 13 #PHP
Linux下安装oracle客户端并配置php5.3
Oct 12 #PHP
PHP依赖倒置(Dependency Injection)代码实例
Oct 11 #PHP
php实现设计模式中的单例模式详解
Oct 11 #PHP
PHP实现设计模式中的抽象工厂模式详解
Oct 11 #PHP
You might like
PHP Cookie的使用教程详解
2013/06/03 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
innerHTML与jquery里的html()区别介绍
2012/10/12 Javascript
js阻止冒泡及jquery阻止事件冒泡示例介绍
2013/11/19 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
JavaScript中用于生成随机数的Math.random()方法
2015/06/15 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
2015/08/21 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
12条写出高质量JS代码的方法
2018/01/07 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
详细解析Python中__init__()方法的高级应用
2015/05/11 Python
谈谈如何手动释放Python的内存
2016/12/17 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
Python谱减法语音降噪实例
2019/12/18 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
2020/06/12 Python
Python 分布式缓存之Reids数据类型操作详解
2020/06/24 Python
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
举例说明类变量和实例变量的区别
2016/06/30 面试题
物流创业计划书
2014/02/01 职场文书
合作协议书格式
2014/08/19 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电
Python机器学习之决策树和随机森林
2021/07/15 Javascript
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers