# <center>前言</center>
PHP是目前的主流编程技术。我们可以看到大量的PHP网站以及大量有关PHP的工作机会,还可以看到许多大型公司都使用这种开放源代码语言来支持其业务。这种最初毫不起眼的开放源代码语言如今已广泛植根于整个业界之内,PHP如如今已得到了人们的广泛重视,诸如IBM和Microsoft这样的公司都已支持这种企业级语言。PHP友好地融合了许多新的观念和思想,其中最值得关注的是通过更健壮的、更灵活的和更经济的部署来开发PHP应用程序。与此同时,许多资深的编程人员也在PHP中引入了若干重要的概念,本书侧重的就是其中一个主要的概念:设计模式。
## 0.1 本书适用的范围
在确定本书所适用的读者对像时,作者非常难于取舍。是为刚接触PHP及其功能和概念的初级编码员而编写还是为具有多看工作经验的编程人员而编写?是应当为了解PHP面向对像功以折专业读者而编写吗?本书是否需要继续包含对PHP4的支持?最后一个问题比较容易回答:“当然,不再支持PHP4。”然而,考虑到PHP4仍然被广泛部署,开发人员仍然在使用PHP4创建新的功能,因此并不能轻易地给出这个答案。为了帮助更广泛的读者使用PHP实现设计模式,而不是仅仅作为PHP语言参考材料,本书采用了下列指导原则来确事实上适用的读者。
**0.1本书读者对像:**
* 必须完全了解PHP语言,或者至少收藏过http://www.php.net 的网址。因为某些示例可能使用编程新手之前从未遇到过的函数。
* 必须大致掌握PHP中所使用的面向对象编程(Object Oriented Programming,OOP)技术。中级OOP编程人员会发现第二间中对PHP高级OO功能的探讨是非常有价值的。
* 必须使用PHP5或更高版本从而具有可用的面向对像编程功能的完整集合,并且能够执行示例和案例分析代码。
* 应当熟悉统一建模语言(Unified Modeling language,UML)。
简单来说,对于在构建交互式应用程序方面具有一定经验(至少曾经建过一个博客)的编程人员来说,本书中使用的示例和概念是极为有价值的,如果以前只使用PHP完成过简单的工作(如构建主题模板或联系表单),那么读者会发现阅读与模式相关的章节是较为困难的。
**0.2 本书的结构**
本书分三大部分:引言章节、参考章节以及案例分析章节。这几个部分具有不同的侧重点。
**0.2.1 引言章节**
第一章不仅对设计模式进行了简要的介绍,而且说明了在PHP中使用这些设计模式的要求。全世界才华横溢的PHP编程人员总是渴望学习新的知识。本章的目的在于:将PHP编程人员的视野范围从只基于PHP概念扩展至体系结构更健全的设计模式领域。
第二章侧重于介绍一些工具,这些工具是在PHP中构建各种设计模式的基础。通过回顾PHP的中级和高级OOP功能、标准PHP库以及现有的开放源代码PHP架构,本章将帮助读者更深入地理解PHP与设计模式。
**0.2.2参考章节**
参考章节是本书的中间章节,也是设计模式是基本的部分。这些章节可以分为4个主要部分:名称、问题与解决方案、UML图以及一个简单的面向对像的代码示例。上述内容基本上覆盖了设计模式的主要功能部分,同时也不至于过分冗长。
**0.2.3案例分析**
本书最后一个部分是一个深入的案例分析,包括项目和计划的详细说明、对可用模式的分析以及逐步应用这些模式的方式。
***1功能分析***
通常,当您获得一系列规范说明时,它们并不是最终的版本。在最初查看这些说明时,你应当对具体的体系结构有大致的了解。此时,您会希望了解项目的需求,以便确定它是一个公公应用一次的实例,还是一个可扩展的项目。需要在将来实现哪些功能?假如您不是这方面的专家,那么可能需要根据从业务分析中了解到的具体问题来寻求答案。
在研究案例的时候,您会收到客户提供的规范说明。本书将全面讲述查看规范说明、提出问题和理清思路的整个过程。最后,我们将提供一个已更新的规范说明文档。
***2模式分析***
在开发任何项目时,必须先进入分析阶段。我们遇到太多这样的例子:在项目开始的阶段,许多编程人员要么漫不经心,要么得意忘形,从而导致最终完成的项目往往不尽如人意。此时,应该重新认真查看规范说明以确定自己的工作计划。
***3逐步生成代码***
案例分析中的这个环节有些偏高本书设定的目标。该部分包括基于UML图的详细代码示例。本书将从模式层次分步骤阐明构建应用程序各部分的整个思考过程。然而,我们的重点并非针对语言具体功能的分析。因此,中级编程人员有时可能需要参考PHP手册。
生成全部代码后,你应当回顾自己的应用程序以及编码过程中所有的选择,从而确保没有比当前模式更适合的模式。设计模式并不意味着必须支持严格的规则,但是必须针对具体的应用程序建立构选块和框架。为了创建体系结构更建全的代码库,我们完全可以变换项目中的设计模式。
**0.3 使用本书的要求**
因为本书的一个优点是更注重概念(而非应用),所以本书的要求非常简单,如下所示:
* Windows 或 linux操作系统
* PHP5.2或更高版本
* MySQL5.0或更高版本
如果不满足上述要求,大部分样本代码仍然能够正常运行。然而,运行本书的最后一个案例分析时,必须满足这些要求。
**0.4 源代码**
学习本书的示例时,读者既可以手动输入所有代码,也可以使用本书附带的源代码文件。本书使用所有源代码都可以从http://www.wrox.com 和 http://www.rupwk.com.cn 上下载。登录到该站点,从Search工具可使用书名列表就可以找到本书。随后,单击本书细目页面上的Download Code链接就可以获得所有源代码。
因为许多图书的书名都很相似,所以通ISBN找到本书是最简单的查找方式。本书的ISBN是978-0-470-49670-1。
下载代码后,只需用自己喜欢的解压软件对它进行解压缩即可。此外,读者也可以进入http://www.wrox.com/dynamic/books/download.aspx上的Wrox代码下载主页,查看本书的其他Wrox图书的所有可用代码。
- PHP设计模式
- 作者简介
- 前言
- 第I部分 初识设计模式与PHP
- 第1章理解设计模式
- 1.1什么是设计模式
- 1.2设计模式未涵盖的内容
- 1.3设计模式的相关论证
- 1.4在PHP中使用设计模式的原因
- 1.5本章小结
- 第2章使用现有的工具
- 2.1已有架构中的模式
- 2.2PHP标准库
- 2.3使用具有模式的EclipsePDT
- 2.4本章小结
- 第II部分 参考内容
- 第3章适配器模式
- 第4章建造者模式
- 第5章数据访问对象模式
- 第6章装饰器模式
- 第7章委托模式
- 第8章外观模式
- 第9章工厂模式
- 第10章解释器模式
- 第11章迭代器模式
- 第12章中介者模式
- 第13章观察者模式
- 第14章原型模式
- 第15章代理模式
- 第16章单元模式
- 第17章策略模式
- 第18章模板模式
- 第19章访问者模式
- 第III部分 PHP设计案例分析
- 第20章需求分析