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和ACCESS写聊天室(六)
Oct 09 PHP
PHP 程序授权验证开发思路
Jul 09 PHP
fleaphp常用方法分页之Pager使用方法
Apr 23 PHP
php防注入,表单提交值转义的实现详解
Jun 10 PHP
PHP利用str_replace防注入的方法
Nov 10 PHP
PHP获取POST数据的几种方法汇总
Mar 03 PHP
PHP实现简单实用的验证码类
Jul 29 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
Oct 25 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
Mar 31 PHP
php实现文件上传基本验证
Mar 04 PHP
PHP二维数组分页2种实现方法解析
Jul 09 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中Date获取时间不正确怎么办
2008/06/05 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
用jquery.sortElements实现table排序
2014/05/04 Javascript
使用jquery提交form表单并自定义action的实现代码
2016/05/25 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
easyui tree带checkbox实现单选的简单实例
2016/11/07 Javascript
jQuery表格的维护和删除操作
2017/02/03 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
Python解析nginx日志文件
2015/05/11 Python
python去除文件中重复的行实例
2018/06/29 Python
举例讲解Python常用模块
2019/03/08 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
阿联酋团购网站:Groupon阿联酋
2016/10/14 全球购物
美国特价机票专家:Airfarewatchdog
2018/01/24 全球购物
哥伦比亚加拿大官网:Columbia Sportswear Canada
2020/09/07 全球购物
方正Java笔试题
2014/07/03 面试题
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
法人身份证明书
2014/10/08 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
Python实现8种常用抽样方法
2021/06/27 Python
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang