前言

在我初次构思本书时,PHP中的面向对象设计还是一个非常深奥的话题。不过在这几年,我不仅看到了PHP作为面向对象语言正在势不可挡地崛起,还看到了框架的演进。框架的作用当然毋庸置疑。它们负责管理许多(现如今应该是绝大多数)Web应用程序的内容以及整合。不过就本书的主题而言,更重要的是它们都实践了本书所探讨的设计原则。

然而如同所有有用的API一样,对于开发者而言,这里也暗藏着一种危险。开发者害怕他们被置于用户区,当出现问题的时候,他们就不得不等待千里之外的某位大师来修复bug,或按照他的意愿加入新特性。这时从某种意义上说,开发者距离“流放”仅有一步之遥:他们所做的工作都必须基于框架中的“高级魔术”般的特性,而且都只不过是为一个强大的、不可知的基础设施添加一些小装饰。

虽然我要重新发明轮子,但是我的论点主旨并非是我们都应该抛弃框架并从头开始构建MVC应用程序(至少并非总是如此)。相反,作为开发人员,我们应该理解框架能够解决的问题,以及它们解决问题时所采用的策略。我们应当不仅仅能够从功能上评估框架,还能够从框架开发者所做的设计决策方面评估框架,以及判断框架的实现质量。当判定框架适用于项目时,接下来就可以基于框架来开发自己的应用程序了。随着开发的深入,我们还需要编译自己的可复用代码库。

我希望本书能够帮助PHP开发者以设计为导向实现平台与代码库,并希望本书中所讲述的概念工具能够确实帮助到PHP开发者。

① 可访问本书ManBetX社区页面(https://www.b453m.com/book/1352)下载示例代码并提交中文版勘误。——编者注

目录

  • 前言
  • 第一部分 对象
  • 第1章 PHP:设计和管理
  • 第2章 PHP和对象
  • 第3章 对象基础
  • 第4章 高级特性
  • 第5章 对象工具
  • 第6章 对象与设计
  • 第二部分 模式
  • 第7章 什么是设计模式,为什么要使用设计模式
  • 第8章 一些模式原则
  • 第9章 生成对象
  • 第10章 使面向对象编程更加灵活的模式
  • 第11章 执行及描述任务
  • 第12章 企业设计模式 
  • 第13章 数据库设计模式
  • 第三部分 实践
  • 第14章 优秀(以及糟糕)的实践
  • 第15章 PHP标准 
  • 第16章 通过Composer使用和创建组件
  • 第17章 用Git进行版本控制
  • 第18章 使用PHPUnit进行测试
  • 第19章 使用Phing进行自动化构建
  • 第20章 Vagrant
  • 第21章 持续集成
  • 第22章 对象、模式和实践 
  • 附录A 参考文献
  • 附录B 一个简单的解析器