五个PHP程序员工具


Posted in PHP onMay 26, 2008

Phing - 一个项目构建系统
Phing 是一个基于Apache ANT 的项目构建系统。它的名字是一个拗口的语句首字母缩写 - PHing Is Not GNU make 。Phing可以做传统构建系统比如 GNU make 能做的任何事情,同时没有陡峭的学习曲线。

在phing(以及其他的构建系统)背后的思想是评估一系列相关性,然后执行一系列PHP类去正确的安装和配置一个应用系统。构建过程用一个简单的XML配置文件控制。Out of the box, phing内置可以执行一系列替换(比如:在你的开发版本和产品版本间改变include路径)、执行SQL语句、移动和复制文件、运行外部脚本等等。通过扩展包含在发行包中的“task”类,你也可以创造自己的定制任务。

对任何需要在超过一台服务器上部署大型PHP应用的人来世,Phing是一个无价之宝。同时我发现它对简单的PHP脚本也是很有用的。

Xdebug - 调试和分析工具
Xdebug 是帮助你调试和分析脚本的一个PHP扩展。Xdebug中最有用的特性是在激活后显示的新注意信息、警告信息和错误信息。如果一个脚本不能正常运行,Xdebug将会输出关于错误信息的完整堆跟踪 ,会附带函数名称、参数值、源文件和行号。这对于厌倦了PHP默认只带的可怜的错误报告功能的程序员是一个值得欢迎的特性。

这个扩展有很多更先进的功能,允许开发人员进行代码覆盖率分析,收集分析信息以及交互式地调试脚本。profiling functionality 功能尤其有用。分析器使用一个普通的输出文件格式,允许你使用象 KCacheGrind 这样的工具快速发现你代码中的瓶颈。对任何严肃的开发人员而言,一个好的分析器是基本工具,它使得你妥善优化你的代码,同时避免过早优化带来的危害。

PHPUnit - 单元测试框架
PHPUnit 是一个轻量级的PHP测试框架。它是在PHP5下面的 JUnit 3.8.1 完整移植,是xUnit 测试框架家族的一员(它们基于软件模式 先锋 Kent Beck 的设计)。

单元测试是几个现代敏捷开发方法的基础,使得PHPUnit成为许多大型PHP项目的关键工具。这个工具也可以被前面讨论的Xdebug扩展用来生成代码覆盖率报告 ,并且可以与phing集成来自动测试。

Propel - ORM(对象关系映射)框架
Propel是一个PHP5下面的对象关系映射(ORM)框架,它起源于Apache Torque项目。它提供了一个复杂但是易用的数据库抽象层,使得你可以在PHP中象使用普通类和对象一样得使用数据库实体。Propel允许你使用一种简单的XML格式定义你的数据库,这个XML文件被用来映射数据库,生成应用中使用的静态类。 

Propel被内嵌于流行的Symfony PHP框架 (还有其他的),它使得代码更灵活、模块化以及可移植。这个项目有The project has 出色的文档,以及很棒的支持社区。

phpMyAdmin / phpPgAdmin - 基于web的数据库管理系统
历史有点长可是还是很有用,phpMyAdmin是对于任何数据库(对应PostgreSQL和SQLite是phpPgAdmin 和 phpSQLiteAdmin)最有用的管理工具之一。它有助于做每一件事情 - 从为了调试应用去创建和删除数据库到做备份。安装它通常是我在一个LAMP服务器上面安装完 Apache, PHP和MySQL后做的第一件事情。如果你使用MySQL,不知何故还没听说过它,那么现在就安装 。

其他工具
还有很多优秀的工具用以符合各种需要,帮助PHP开发者创建一个丰富的开发环境 — 我希望我可以说到所有这些工具。我发现对自己有用的工具有PHP Beautifier, Spyc, Creole和Smarty。我确信还有很多我忘记或者没听说过的有用工具。因此,如果你知道某个我遗漏的PHP开发伟大工具,请留言让我(以及所有人)知道!

PHP 相关文章推荐
PHP 和 XML: 使用expat函数(三)
Oct 09 PHP
php预定义常量
Dec 25 PHP
php线性表顺序存储实现代码(增删查改)
Feb 16 PHP
显示程序执行时间php函数代码
Aug 29 PHP
PHP函数之日期时间函数date()使用详解
Sep 09 PHP
php后台如何避免用户直接进入方法实例
Oct 15 PHP
PHP获取photoshop写入图片文字信息的方法
Mar 31 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
Mar 07 PHP
基于laravel belongsTo使用详解
Oct 18 PHP
PHP rsa加密解密算法原理解析
Dec 09 PHP
PHP使用非对称加密算法RSA
Apr 21 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
May 26 #PHP
JS实现php的伪分页
May 25 #PHP
php中iconv函数使用方法
May 24 #PHP
在PHP中使用模板的方法
May 24 #PHP
php读取数据库信息的几种方法
May 24 #PHP
php循环输出数据库内容的代码
May 24 #PHP
开源SNS系统-ThinkSNS
May 18 #PHP
You might like
php列出mysql表所有行和列的方法
2015/03/13 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
php递归函数怎么用才有效
2018/02/24 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
js获取GridView中行数据的两种方法 分享
2013/07/13 Javascript
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
正则表达式,替换所有HTML标签的简单实例
2016/11/28 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
vue通过数据过滤实现表格合并
2020/11/30 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
three.js如何实现3D动态文字效果
2021/03/03 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python模拟鼠标拖动操作的方法
2015/03/11 Python
pygame实现弹力球及其变速效果
2017/07/03 Python
详解Python自建logging模块
2018/01/29 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
Python进程间通信Queue消息队列用法分析
2019/05/22 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
python 二维矩阵转三维矩阵示例
2019/11/30 Python
Python random模块制作简易的四位数验证码
2020/02/01 Python
Python class的继承方法代码实例
2020/02/14 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
Delphi笔试题
2016/11/14 面试题
写字楼租赁意向书
2014/07/30 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
离婚协议书格式
2015/01/26 职场文书