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执行速度全攻略(上)
Oct 09 PHP
php下通过POST还是GET来传值
Jun 05 PHP
Php Cookie的一个使用注意点
Nov 08 PHP
php zip文件解压类代码
Dec 02 PHP
PHP 日志缩略名的创建函数代码
May 26 PHP
php修改时间格式的代码
May 29 PHP
php中get_headers函数的作用及用法的详细介绍
Apr 27 PHP
PHP 设计模式系列之 specification规格模式
Jan 10 PHP
PHP7基于curl实现的上传图片功能
May 11 PHP
PHP strripos函数用法总结
Feb 11 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 PHP
php+ajax实现商品对比功能示例
Apr 13 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桌面中心(二) 数据库写入
2007/03/11 PHP
PHP 面向对象 PHP5 中的常量
2010/05/05 PHP
php统计数组元素个数的方法
2015/07/02 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
PHP实现微信对账单处理
2018/10/01 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
javascript String 的扩展方法集合
2008/06/01 Javascript
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
AngularJS内置指令
2015/02/04 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
2016/05/25 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
JSON字符串和JSON对象相互转化实例详解
2017/01/05 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
详解微信小程序 template添加绑定事件
2017/06/23 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
python常规方法实现数组的全排列
2015/03/17 Python
python文件写入实例分析
2015/04/08 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
简单实现Python爬取网络图片
2018/04/01 Python
关于Python解包知识点总结
2020/05/05 Python
Python能做什么
2020/06/02 Python
css3的@media属性实现页面响应式布局示例代码
2014/02/10 HTML / CSS
CSS3动画和HTML5新特性详解
2020/08/31 HTML / CSS
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
AURALog面试题软件测试方面
2013/10/22 面试题
机电专业大学生求职信
2013/10/04 职场文书
党员岗位承诺口号大全
2014/03/28 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
复兴之路观后感
2015/06/02 职场文书
Redis三种集群模式详解
2021/10/05 Redis