每个PHP程序员都可能使用某种形式的模板引擎和数据库抽象层,但除此之外,您认为哪些额外功能是必不可少的或者推荐给其他程序员尝试的?
一个好的框架。
PHP 有很多选择:Zend's,Solar,CakePHP,Symfony,Kohana。一个好的框架将会处理大部分繁琐的应用开发工作,让你有更多时间实现项目特定的领域逻辑。框架还将帮助强制执行一致的编码风格,通常具有丰富的文档,并且大多数都经过了充分的测试和稳定性。
一个好的 IDE。
对于任何认真的开发人员来说,一个好的 IDE 是必不可少的。项目组织、目录导航、代码补全以及各种有用的扩展(例如,用于文件版本控制系统)都是巨大的生产力提升器。PHP 有几个好的 IDE,包括 Zend Studio 和 PDT for Eclipse。
构建系统。
构建脚本对于自动化重复任务非常有用,例如设置目录/文件权限、SVN 更新、运行测试等等,在移动项目之前(开发/暂存/生产)完成。我主要使用 Phing(一个 Ant 克隆)来构建和部署项目。
分析和调试工具。
这两个需求都可以通过同一个工具解决 - xdebug,它提供了改进的调试功能,并且还可以生成 kcachegrind 报告来分析你的应用程序。然后我使用 webgrind 来访问这些报告。
Op-code 缓存。
PHP 由于其运行时编译方案而产生了重大的性能损失。Op-code caches 可以通过在缓存命中时缓存脚本的编译状态来避免编译开销,从而显著提高性能。当有机会时,我使用 APC 作为我的 Op-code 缓存。
各种开源包。
PHP 作为一种开源语言,具有长期的开源开发传统。对于大多数常见(和一些不常见)的需求,都有许多高质量/有用的包,可以节省大量开发时间。我使用 wordpress 和 joomla 作为博客平台,HTML Purifier 用于净化和验证 HTML,minify 用于压缩和合并 CSS 和 Javascript 等。
源文件版本控制。
无论使用哪种编程语言,都必须进行版本控制。我使用 SVN 和 tortoise 客户端(适用于 Windows)。
集成开发环境:Eclipse 的 PDT 插件
源代码控制:使用 Tortoise SVN 进行 SVN 版本控制
其他细节根据项目需求而定,例如框架等。