rephactor 优秀的PHP的重构工具


Posted in PHP onJune 09, 2011

PHP框架可以是单一入口,完全面向对象的,完全基于类的MVC模式。但是,我们面对大量的旧的代码,或即便是新的代码,也不尽然完全符合面向对象的原则,符合设计模式。小的应用无妨。但如果面对大型应用,则必然是一个不小的疼痛!!

        怎么办?很多人总会面临这一切,PHP代码需要重构。(当然,你要是能明白我所说的这一切,那你肯定是看过《重构——改善既有代码的设计》这一本书)

        看看这个链接:http://zh-cn.w3support.net/index.php?db=so&id=100876 我们就能深明重构的疼痛!这是在所难免的。但如何能使这一疼痛变得轻一些呢?

        重构工具是必须的。好在,现在真的有了PHP的重构工具——rephactor。它确实是一个非常优秀的工具。(当然,你必须记住,从来就没有完全自动化的重构工具,机器永远不能代替人脑,所有重构的目标,以及每一步仍都是要你按照《重构——改善既有代码的设计》一书中给你讲明的做法去完成的!)

        那么:rephactor给我们提供了什么呢?

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

        当然,它有一些限制,只能运行于LINUX操作系统,并且,只支持PHP5.2

        有兴趣吧? 有了它, 你的重构将会大大加快,并且,保证不会出现新的BUG。

        官方网址:http://rephactor.sourceforge.net/

        何不安装一个,试一下?

PHP 相关文章推荐
五个PHP程序员工具
May 26 PHP
PHP 错误之引号中使用变量
May 04 PHP
php 无限分类的树类代码
Dec 03 PHP
PHP 全角转半角实现代码
May 16 PHP
php模块memcache和memcached区别分析
Jun 14 PHP
PHP中使用cURL实现Get和Post请求的方法
Mar 13 PHP
php启动时候提示PHP startup的解决方法
May 07 PHP
php实现水仙花数的4个示例分享
Apr 08 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
Dec 16 PHP
thinkPHP实现的省市区三级联动功能示例
May 05 PHP
PHP中的函数声明与使用详解
May 27 PHP
php接口隔离原则实例分析
Nov 11 PHP
php获取post中的json数据的实现方法
Jun 08 #PHP
常用的PHP数据库操作方法(MYSQL版)
Jun 08 #PHP
apache+php完美解决301重定向的两种方法
Jun 08 #PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
Jun 06 #PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
Jun 06 #PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 #PHP
php写的简易聊天室代码
Jun 04 #PHP
You might like
PHP常用处理静态操作类
2015/04/03 PHP
php递归调用删除数组空值元素的方法
2015/04/28 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
JS小游戏之象棋暗棋源码详解
2014/09/25 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
2019/04/10 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
从Python的源码来解析Python下的freeblock
2015/05/11 Python
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
python+pygame简单画板实现代码实例
2017/12/13 Python
Python基于TCP实现会聊天的小机器人功能示例
2018/04/09 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
简单介绍python封装的基本知识
2019/08/10 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
Python多线程正确用法实例解析
2020/05/30 Python
python对 MySQL 数据库进行增删改查的脚本
2020/10/22 Python
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
戴森美国官网:Dyson美国
2016/09/11 全球购物
小学三好学生事迹材料
2014/08/15 职场文书
党性心得体会
2014/09/03 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
汉语拼音教学反思
2016/02/22 职场文书