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 相关文章推荐
用Flash图形化数据(二)
Oct 09 PHP
php xml-rpc远程调用
Dec 19 PHP
去除php注释和去除空格函数分享
Mar 13 PHP
探寻PHP脚本不报错的原因
Jun 12 PHP
php将csv文件导入到mysql数据库的方法
Dec 24 PHP
PHP简单获取视频预览图的方法
Mar 12 PHP
基于PHP实现商品成交时发送短信功能
May 11 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
Sep 22 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
PHP实现防盗链的方法分析
Jul 25 PHP
PHP hex2bin()函数用法讲解
Feb 25 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
apache和php之间协同工作的配置经验分享
2013/04/08 PHP
php unset全局变量运用问题的深入解析
2013/06/17 PHP
PHP实现一维数组转二维数组的方法
2015/02/25 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
简单的vue-resourse获取json并应用到模板示例
2017/02/10 Javascript
js实现导航吸顶效果
2017/02/24 Javascript
Vue自定义事件(详解)
2017/08/19 Javascript
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
python中cPickle类使用方法详解
2018/08/27 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
Django密码存储策略分析
2020/01/09 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
向国旗敬礼活动小结
2014/09/27 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
使用Springboot实现健身房管理系统
2021/07/01 Java/Android
数据库之SQL技巧整理案例
2021/07/07 SQL Server