阅读November 2008 edition of php|architect magazine中的“现代PHP工作流程”文章 讨论了单元测试(phpUnit),构建工具(Phing)和持续集成(Xinc),我鼓励学习更多关于PHP的一些工具,尤其是Phing。
过去我经常通过将实时站点作为subversion工作副本运行并在生产盒上运行“svn update”来部署最新版本的代码来处理生产服务器的部署。
您是否为PHP代码使用构建工具?您认为他们提供哪些优势而不是直接从subversion部署?我应该注意什么,或者我可能会遇到什么问题?
答案 0 :(得分:7)
我使用过Phing和Ant,后者更喜欢后者。我最初选择Phing是因为它是用PHP编写的,但说实话它并不像Ant那么成熟。最后,拥有一个拥有大型社区的成熟构建系统是值得的。
使用Ant / Phing完成的事情:
答案 1 :(得分:7)
我在Phing看到的一个大问题是它创建了一个不必要的间接层。 PHP是一种脚本语言,因此可以直接运行。 Phing使用XML配置不适合该语言:它确实提供了更易读的声明性配置,但代价是牺牲了语言的任何灵活性。使用Ant(这条路线的灵感)它是有道理的,因为Java没有那种灵活性,因为它不那么动态,需要编译。
不幸的是,我没有在PHP空间中看到很多好的替代品,与其他语言不同,构建工具不是必不可少的,也不是文化的一部分,因此另一个支持良好的选项的发展可能不会很快发生。
因此,我坚持使用更接近PHP 可以从更积极支持构建工具的文化中做的选项。我通常使用Gradle。 Rake也可以做得很好,具体取决于您想要欺骗的语言(可能还有其他类似选项)。如果你涉及到那种类型的东西,你还应该权衡像Webdriver支持这样的东西。否则,使用PHP和/或BASH创建轻量级解决方案应涵盖所有内容,同时保持透明度
答案 2 :(得分:2)
我看着Phing看起来非常棒。对于我正在研究的项目,我实际上正在使用Apache's Ant。我用它来做几件事:
我认为Phing值得关注Ant,因为它是原生PHP,可能很好。此外,如果您正在执行的操作不仅仅是复制/移动文件,请在迁移到生产环境时注意性能问题。我有一个问题,YUI压缩器在我的本地机器上运行正常,但在相对较小的VPS上,它非常慢。
答案 3 :(得分:2)
在我正在进行的项目中,我们正在使用phpUnderControl来运行测试,并在出现问题时获得快速反馈。我们计划使用它来运行其他测试,例如Watir中编写的一些测试。