五款PHP代码重构工具推荐


Posted in PHP onOctober 14, 2014

在软件工程学里,重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码。软件重构需要借助工具完成,而重构工具能够修改代码同时修改所有引用该代码的地方。本文收集了五款出色的PHP代码重构工具,以帮助你完善更加优秀的项目。

1. Rephactor

Rephactor是一款命令行重构工具,这是一款自动化工具,允许开发者以一种简洁的方式在不同的代码库中修改源码。

主要功能:

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

2. Scisr

Scisr是一款利用PHP编写的重构工具。项目托管在GitHub上。基于GPL许可证下发行。

使用方法:

 

类的重命名:

$ scisr rename-class OldName NewName [files]

修改方法:

$ scisr rename-method OwningClassName oldMethodName newMethodName [files]

文件重命名:

$ scisr rename-file old/file_name new/dir/new_file_name [files]

重命名类和文件:

$ scisr rename-class-file OldClassName NewClassName [files]

3. PHP Refactoring Browser

这是一款PHP 代码的重构工具,通过生成diffs来描述重构的步骤,避免重构过程中的简单错误,该工具非常棒。项目托管在GitHub上。

使用库:

PHP Parser by Nikic
PHP Token Reflection from Ondřej Nešp

重构浏览器数据主要包含以下几个方面:

补丁——支持基于更改文件操作创建补丁;
重构——包含实际重构域和适配第三方库;
集合——基于PHP数组可靠添加集合语义。目前包含一组类型。

4. PhpStorm

五款PHP代码重构工具推荐

PhpStorm是由JetBrains公司开发的一款PHP IDE富应用,同时支持重构。PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化调试功能。

目前,发布了PhpStorm 7版本,新版本支持PHP5.5;改进PHP语法着色性能;Vagrant、SSH 控制&远程工具;支持Drupal & PHP框架;改进调试和测试性能。

PhpStorm的主要特性:

智能PHP编码编辑器;
代码质量分析;
支持调试/测试;
支持HTML/CSS/JavaScript编辑器;
支持跨平台。

5. Zend Studio

Zend Studio是Zend Technologies开发的PHP语言集成开发环境。支持HTML和JS标签,但只对PHP语言提供调试支持。

主要特性:

具备功能强大的专业编辑工具和调试工具;
支持PHP语法高亮显示、语法自动填充功能,支持语法自动缩排和代码复制功能;
支持书签功能;
内置一个强大的PHP代码调试工具;
支持本地和远程两种调试模式,支持多种高级调试功能。

PHP 相关文章推荐
一步一步学习PHP(8) php 数组
Mar 05 PHP
php json_encode值中大括号与花括号区别
Sep 30 PHP
使用php计算排列组合的方法
Nov 13 PHP
php判断电脑访问、手机访问的例子
May 10 PHP
php生成动态验证码gif图片
Oct 19 PHP
PHP接收json 并将接收数据插入数据库的实现代码
Dec 01 PHP
Fleaphp常见函数功能与用法示例
Nov 15 PHP
基于CI框架的微信网页授权库示例
Nov 25 PHP
PHP封装返回Ajax字符串和JSON数组的方法
Feb 17 PHP
php抽象类和接口知识点整理总结
Aug 02 PHP
php 策略模式原理与应用深入理解
Sep 25 PHP
Laravel 登录后清空COOKIE的操作方法
Oct 14 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 #PHP
php 模拟 asp.net webFrom 按钮提交事件实例
Oct 13 #PHP
ThinkPHP表单自动验证实例
Oct 13 #PHP
Linux下安装oracle客户端并配置php5.3
Oct 12 #PHP
PHP依赖倒置(Dependency Injection)代码实例
Oct 11 #PHP
php实现设计模式中的单例模式详解
Oct 11 #PHP
PHP实现设计模式中的抽象工厂模式详解
Oct 11 #PHP
You might like
第十三节 对象串行化 [13]
2006/10/09 PHP
DISCUZ 论坛管理员密码忘记的解决方法
2009/05/14 PHP
PHP cdata 处理(详细介绍)
2013/07/05 PHP
php中的strpos使用示例
2014/02/27 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
2015/08/23 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
PHP实现的曲线统计图表示例
2016/11/10 PHP
js日期相关函数总结分享
2013/10/15 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
JQuery遍历DOM节点的方法
2015/06/11 Javascript
详解JavaScript中的构造器Constructor模式
2016/01/14 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
jQuery 防止相同的事件快速重复触发方法
2018/02/08 jQuery
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
js实现继承的方法及优缺点总结
2019/05/08 Javascript
使用django-crontab实现定时任务的示例
2018/02/26 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
python中取绝对值简单方法总结
2020/07/24 Python
毕业生简单求职信
2013/11/19 职场文书
做一个有道德的人活动方案
2014/08/25 职场文书
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python