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 获取文件权限函数介绍
Jul 11 PHP
php批量添加数据与批量更新数据的实现方法
Dec 16 PHP
浅析PHP文件下载原理
Dec 25 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
详解PHP中websocket的使用方法
Sep 15 PHP
PHP GD库相关图像生成和处理函数小结
Sep 30 PHP
详解php中空字符串和0之间的关系
Oct 23 PHP
关于PHP内置的字符串处理函数详解
Feb 04 PHP
php中get_magic_quotes_gpc()函数说明
Feb 06 PHP
Laravel利用gulp如何构建前端资源详解
Jun 03 PHP
详解PHP PDO简单教程
May 28 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 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
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
PHP基于DOM创建xml文档的方法示例
2017/02/08 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
2020/08/17 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
用js制作淘宝放大镜效果
2020/10/28 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
vue.js 获取当前自定义属性值
2017/06/01 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
解决vue attr取不到属性值的问题
2018/09/18 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
vue实现登录拦截
2020/06/29 Javascript
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
Python 字符串中的字符倒转
2008/09/06 Python
Pandas标记删除重复记录的方法
2018/04/08 Python
django加载本地html的方法
2018/05/27 Python
解决Python安装后pip不能用的问题
2018/06/12 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
django模板结构优化的方法
2019/02/28 Python
python3使用GUI统计代码量
2019/09/18 Python
python、Matlab求定积分的实现
2019/11/20 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
荷兰网上药店:Drogisterij.net
2019/09/03 全球购物
经验丰富大学生村干部自我鉴定
2014/01/22 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
二审代理词范文
2015/05/25 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL
netty 实现tomcat的示例代码
2022/06/05 Servers