在参与了几个大型
PHP项目
,写了很多
PHP代码以后
,我发现很多工具可以提高代码质量,简化发布,使得做为PHP开发人员的生涯变得轻松许多
。许多这样的工具可能已经为大家所用
。但是,由于一些人甚至没有注意到这些工具的存在,我会从此开始,好了,不说废话,下面是我认为所有PHP程序员应该知道的工具列表。Phing-一个项目构建系统
Phing是一个基于ApacheANT的项目构建系统。它的名字是一个拗口的语句首字母缩写-PHingIsNotGNUmake。Phing可以做传统构建系统比如GNUmake能做的任何事情,同时没有陡峭的学习曲线。
在phing(以及其他的构建系统)背后的思想是评估一系列相关性,然后执行一系列PHP类去正确的安装和配置一个应用系统。构建过程用一个简单的XML配置文件控制。Outofthebox,phing内置可以执行一系列替换(比如:在你的开发版本和产品版本间改变include路径)、执行
SQL语句、移动和复制文件、运行外部脚本等等。通过扩展包含在发行包中的“task”类,你也可以创造自己的定制任务。
对任何需要在超过一台
服务器上部署大型PHP应用的人来世,Phing是一个无价之宝。同时我发现它对简单的PHP脚本也是很有用的。
Xdebug-调试和分析工具
Xdebug是帮助你调试和分析脚本的一个PHP扩展。Xdebug中最有用的特性是在激活后显示的新注意信息、警告信息和错误信息。如果一个脚本不能正常运行,Xdebug将会输出关于错误信息的完整堆跟踪,会附带函数名称、参数值、源文件和行号。这对于厌倦了PHP默认只带的可怜的错误报告功能的程序员是一个值得欢迎的特性。
这个扩展有很多更先进的功能,允许开发人员进行代码覆盖率分析,收集分析信息以及交互式地调试脚本。profilingfunctionality功能尤其有用。分析器使用一个普通的输出文件格式,允许你使用象KCacheGrind这样的工具快速发现你代码中的瓶颈。对任何严肃的开发人员而言,一个好的分析器是基本工具,它使得你妥善
优化你的代码,同时避免过早
优化带来的危害。
PHPUnit-单元测试框架
PHPUnit是一个轻量级的PHP测试框架。它是在PHP5下面的JUnit3.8.1完整移植,是xUnit测试框架家族的一员(它们基于软件模式先锋KentBeck的设计)。
单元测试是几个现代敏捷开发方法的基础,使得PHPUnit成为许多大型PHP项目的关键工具。这个工具也可以被前面讨论的Xdebug扩展用来生成代码覆盖率报告,并且可以与phing集成来自动测试。
Propel-ORM(对象关系映射)框架
Propel是一个PHP5下面的对象关系映射(ORM)框架,它起源于ApacheTorque项目。它提供了一个复杂但是易用的数据库抽象层,使得你可以在PHP中象使用普通类和对象一样得使用数据库实体。Propel允许你使用一种简单的XML格式定义你的数据库,这个XML文件被用来映射数据库,生成应用中使用的静态类。
Propel被内嵌于流行的SymfonyPHP框架(还有其他的),它使得代码更灵活、模块化以及可移植。这个项目有Theprojecthas出色的文档,以及很棒的支持社区。
phpMyAdmin/phpPgAdmin-基于web的数据库管理系统
历史有点长可是还是很有用,phpMyAdmin是对于任何数据库(对应Postgre
SQL和SQLite是phpPgAdmin和phpSQLiteAdmin)最有用的管理工具之一。它有助于做每一件事情-从为了调试应用去创建和删除数据库到做备份。安装它通常是我在一个LAMP
服务器上面安装完Apache,PHP和MySQL后做的第一件事情。如果你使用MySQL,不知何故还没听说过它,那么现在就安装。
其他工具
还有很多优秀的工具用以符合各种需要,帮助PHP开发者创建一个丰富的开发环境—我希望我可以说到所有这些工具。我发现对自己有用的工具有PHPBeautifier,Spyc,Creole和Smarty。我确信还有很多我忘记或者没听说过的有用工具。因此,如果你知道某个我遗漏的PHP开发伟大工具,请留言让我(以及所有人)知道!