五款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相关资料
Oct 09 PHP
PR值查询 | PageRank 查询
Dec 20 PHP
setcookie中Cannot modify header information-headers already sent by错误的解决方法详解
May 08 PHP
基于PHP CURL用法的深入分析
Jun 09 PHP
php中url传递中文字符,特殊危险字符的解决方法
Aug 17 PHP
PHP图片裁剪函数(保持图像不变形)
May 04 PHP
ThinkPHP模版中导入CSS和JS文件的方法
Nov 29 PHP
Yii调试查看执行SQL语句的方法
Jul 15 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
Yii2中多表关联查询hasOne hasMany的方法
Feb 15 PHP
php中pcntl_fork创建子进程的方法实例
Mar 14 PHP
PHP copy函数使用案例代码解析
Sep 01 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 的几个配置文件函数
2006/12/21 PHP
Yii扩展组件编写方法实例分析
2015/06/29 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
javascript 多级checkbox选择效果
2009/08/20 Javascript
JavaScript 常用函数
2009/12/30 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
js点击出现悬浮窗效果不使用JQuery插件
2014/01/20 Javascript
使用jQueryMobile实现滑动翻页效果的方法
2015/02/04 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
React和Vue中监听变量变化的方法
2018/11/14 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
[54:08]LGD女子刀塔学院 DOTA2炼金术士教学
2014/01/09 DOTA
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
[02:46]解说DC:感谢430陪伴我们的DOTA2国际邀请赛岁月
2016/06/29 DOTA
教你安装python Django(图文)
2013/11/04 Python
python中实现定制类的特殊方法总结
2014/09/28 Python
讲解Python中for循环下的索引变量的作用域
2015/04/15 Python
python+matplotlib绘制饼图散点图实例代码
2018/01/20 Python
Django继承自带user表并重写的例子
2019/11/18 Python
python 用struct模块解决黏包问题
2020/11/07 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
深入解析HTML5中的Blob对象的使用
2015/09/08 HTML / CSS
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
财务管理职业生涯规划书
2014/02/26 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
企业文化理念标语
2014/06/10 职场文书
故宫导游词
2015/01/31 职场文书
Python Django获取URL中的数据详解
2021/11/01 Python