| 一、册本简介 
 
 作者: [美] Matt Zandstra
 出版社: 人民邮电出版社
 原作名: PHP Objects, Patterns and Practice
 译者: 陈浩 / 吴孙滨 / 胡丹 / 李静
 出版年: 2011-7
 页数: 450
 装帧: 平装
 丛书: 图灵程序设计丛书·Web开发系列
 ISBN: 9787115256249
 二、获取方式
 
 转发本文,私信发送:0117,获取下载链接;
 三、册本目次
 
 第一部分 介 绍
 第1 章 PHP:设计与管理  2
 1.1 问题  2
 1.2 PHP 和其他语言  3
 1.3 关于本书  5
 1.3.1 对象   5
 1.3.2 模式   5
 1.3.3 实践   6
 1.3.4 第3 版新增内容  7
 1.4 小结   7
 第二部分 对 象
 第2 章 PHP 与对象  10
 2.1 PHP 对象的偶然乐成   10
 2.1.1 最初:PHP/FI   10
 2.1.2 语法糖:PHP 3  10
 2.1.3 一场静静静的革命:PHP 4  11
 2.1.4 拥抱改变:PHP 5   12
 2.2 走向未来:PHP 6   13
 2.3 附和和疑虑:关于对象的争辩   13
 2.4 小结   14
 第3 章 对象底子   15
 3.1 类和对象   15
 3.1.1 编写第一个类  15
 3.1.2 第一个对象(或两个)    16
 3.2 设置类中的属性  17
 3.3 利用方法  19
 3.4 参数和类型  21
 3.4.1 基本类型  22
 3.4.2 获得提示:对象类型   24
 3.5 继承  26
 3.5.1 继承问题  26
 3.5.2 利用继承  30
 3.5.3 public、private、protected:管理类的访问  35
 3.6 小结    39
 第4 章 高级特性   40
 4.1 静态方法和属性  40
 4.2 常量属性  43
 4.3 抽象类  44
 4.4 接口  46
 4.5 延迟静态绑定:static 关键字   47
 4.6 错误处置处罚  50
 4.7 Final 类和方法  56
 4.8 利用拦截器  57
 4.9 析构方法   61
 4.10 利用__clone()复制对象  62
 4.11 定义对象的字符串值  64
 4.12 回调、匿名函数和闭包   65
 4.13 小结   69
 第5 章 对象工具  70
 5.1 PHP 和包  70
 5.1.1 PHP 包和命名空间   70
 5.1.2 自动加载  78
 5.2 类函数和对象函数  79
 5.2.1 查找类  80
 5.2.2 相识对象或类  81
 5.2.3 相识类中的方法   82
 5.2.4 相识类属性   83
 5.2.5 相识继承  83
 5.2.6 方法调用  84
 5.3 反射API  85
 5.3.1 入门  85
 5.3.2 开始举措  86
 5.3.3 查抄类  88
 5.3.4 查抄方法   89
 5.3.5 查抄方法参数   91
 5.3.6 利用反射API   92
 5.4 小结  95
 第6 章 对象与设计   96
 6.1 代码设计的定义  96
 6.2 面向对象设计和过程式编程   97
 6.2.1 职责  100
 6.2.2 内聚  100
 6.2.3 耦合  101
 6.2.4 正交  101
 6.3 选择类   101
 6.4 多态   102
 6.5 封装    104
 6.6 忘记细节  105
 6.7 4 个方向标  105
 6.7.1 代码重复  106
 6.7.2 类知道的太多  106
 6.7.3 全能的类   106
 6.7.4 条件语句   106
 6.8 UML  106
 6.8.1 类图   107
 6.8.2 时序图  111
 6.9 小结   112
 第三部分 模 式
 第7 章 什么是设计模式?为何利用它们   114
 7.1 什么是设计模式  114
 7.2 设计模式概览  116
 7.2.1 命名  116
 7.2.2 问题  116
 7.2.3 解决方案  117
 7.2.4 效果   117
 7.3 《设计模式》格式  117
 7.4 为什么利用设计模式  118
 7.4.1 一个设计模式定义了一个问题   118
 7.4.2 一个设计模式定义了一个解决方案  118
 7.4.3 设计模式是语言无关的   118
 7.4.4 模式定义了一组词汇   118
 7.4.5 模式是颠末测试的   119
 7.4.6 模式是为协作而设计的   119
 7.4.7 设计模式促进良好设计   119
 7.5 PHP 与设计模式  120
 7.6 小结  120
 第8 章 模式原则  121
 8.1 模式的启示  121
 8.2 组合与继承  122
 8.2.1 问题  122
 8.2.2 利用组合  124
 8.3 解耦  127
 8.3.1 问题  127
 8.3.2 降低耦合  128
 8.4 针对接口编程,而不是针对实现编程  130
 8.5 变化的概念  131
 8.6 父子关系  132
 8.7 模式  132
 8.7.1 用于生成对象的模式   133
 8.7.2 用于组织对象和类的模式   133
 8.7.3 面向使命的模式   133
 8.7.4 企业模式  133
 8.7.5 数据库模式  133
 8.8 小结    133
 第9 章 生成对象  134
 9.1 生成对象的问题和解决方法   134
 9.2 单例模式   138
 9.2.1 问题    138
 9.2.2 实现   139
 9.2.3 结果   141
 9.3 工厂方法模式  141
 9.3.1 问题  141
 9.3.2 实现  143
 9.3.3 结果  145
 9.4 抽象工厂模式  146
 9.4.1 问题  146
 9.4.2 实现   147
 9.4.3 结果  148
 9.4.4 原型模式  150
 9.4.5 问题  150
 9.4.6 实现  151
 9.5 某些模式的骗术  153
 9.6 小结  154
 第10 章 让面向对象编程更加灵活的模式  155
 10.1 构造可灵活创建对象的类   155
 10.2 组合模式  155
 10.2.1 问题   156
 10.2.2 实现  158
 10.2.3 效果  161
 10.2.4 组合模式小结  164
 10.3 装饰模式  165
 10.3.1 问题  165
 10.3.2 实现   167
 10.3.3 效果  170
 10.4 外观模式   170
 10.4.1 问题  170
 10.4.2 实现  172
 10.4.3 效果  172
 10.5 小结   173
 第11 章 执行及形貌使命  174
 11.1 表明器模式  174
 11.1.1 问题  174
 11.1.2 实现  175
 11.1.3 表明器的问题   182
 11.2 计谋模式  183
 11.2.1 问题   183
 11.2.2 实现  184
 11.3 观察者模式  187
 11.4 访问者模式  194
 11.4.1 问题  194
 11.4.2 实现  195
 11.4.3 访问者模式的问题   199
 11.5 命令模式  200
 11.5.1 问题  200
 11.5.2 实现   200
 11.6 小结   204
 第12 章 企业模式   205
 12.1 架构概述  205
 12.1.1 模式   205
 12.1.2 应用程序和层   206
 12.2 企业架构之外的底子模式   208
 12.2.1 注册表   208
 12.2.2 实现  209
 12.3 表现层  217
 12.3.1 前端控制器   217
 12.3.2 应用控制器  227
 12.3.3 页面控制器  237
 12.3.4 模板视图和视图助手   242
 12.4 业务逻辑层   245
 12.4.1 事务脚本  245
 12.4.2 领域模型  249
 12.5 小结  252
 第13 章 数据库模式  253
 13.1 数据层   253
 13.2 数据映射器  253
 13.2.1 问题  254
 13.2.2 实现  254
 13.2.3 效果   265
 13.3 标识映射  266
 13.3.1 问题  266
 13.3.2 实现  266
 13.3.3 效果  269
 13.4 工作单位   269
 13.4.1 问题   269
 13.4.2 实现  270
 13.4.3 效果  274
 13.4.4 延迟加载   274
 13.4.5 问题  274
 13.4.6 实现   274
 13.4.7 效果  276
 13.5 领域对象工厂  276
 13.5.1 问题  276
 13.5.2 实现  277
 13.5.3 效果  278
 13.6 标识对象  279
 13.6.1 问题  279
 13.6.2 实现   280
 13.6.3 效果  285
 13.7 选择工厂和更新工厂模式   285
 13.7.1 问题   285
 13.7.2 实现  285
 13.7.3 效果  288
 13.8 数据映射器中剩下些什么   289
 13.9 小结  291
 第四部分 实 践
 第14 章 良好和糟糕的实践   294
 14.1 逾越代码  294
 14.2 借一个轮子  295
 14.3 互助舒畅  296
 14.4 为你的代码插上双翼   297
 14.5 文档   297
 14.6 测试    298
 14.7 持续集成   299
 14.8 小结    300
 第15 章 PEAR 和Pyrus   301
 15.1 什么是PEAR    301
 15.2 相识Pyrus   302
 15.3 安装PEAR 包   303
 15.4 利用PEAR 包   306
 15.5 创建自己的PEAR 包   311
 15.5.1 package.xml    311
 15.5.2 package.xml 的构成   312
 15.5.3 contents 元素   313
 15.5.4 依靠   316
 15.5.5 利用phprelease 进行灵活的自定义安装  317
 15.5.6 准备发布包    318
 15.5.7 创建自己的PEAR 频道   318
 15.6 小结  323
 第16 章 用phpDocumentor 生成文档   324
 16.1 为什么要利用文档    324
 16.2 安装  325
 16.3 生成文档   325
 16.4 DocBlock 注释    327
 16.5 类的文档    328
 16.6 文件的文档    330
 16.7 属性的文档    330
 16.8 方法的文档   331
 16.9 在文档中创建链接  333
 16.10 小结  335
 第17 章 利用Subversion 进行版本控制  336
 17.1 为什么要利用版本控制   336
 17.2 获得Subversion   337
 17.3 配置Subversion 代码库   338
 17.4 开始项目   339
 17.5 更新和提交   341
 17.6 增加和删除文件及目次   344
 17.6.1 添加文件  344
 17.6.2 删除文件  345
 17.6.3 添加目次  345
 17.6.4 删除目次  345
 17.7 标记和导出项目   345
 17.7.1 标记项目   345
 17.7.2 导出项目  346
 17.8 创建项目分支  347
 17.9 小结  350
 第18 章 利用PHPUnit 进行测试   351
 18.1 功能测试与单位测试   351
 18.2 手工测试  352
 18.3 引入PHPUnit   354
 18.3.1 创建测试用例  354
 18.3.2 断言方法   355
 18.3.3 测试异常  356
 18.3.4 运行测试套件  357
 18.3.5 约束  358
 18.3.6 模仿与桩  360
 18.3.7 失败是乐成之母   362
 18.4 编写Web 测试  365
 18.4.1 为测试重构Web 应用   366
 18.4.2 简单的Web 测试   368
 18.4.3 Selenium   370
 18.5 警告    374
 18.6 小结   376
 第19 章 用Phing 实现项目标自动构建   377
 19.1 什么是Phing   377
 19.2 获取和安装Phing    378
 19.3 编写build 文档   378
 19.3.1 目标   380
 19.3.2 属性   382
 19.3.3 类型   387
 19.3.4 使命   391
 19.4 小结   394
 第五部分 结 论
 第20 章 持续集成   396
 20.1 什么是持续集成  396
 20.2 CruiseControl 和phpUnderControl  404
 20.2.1 安装CruiseControl   404
 20.2.2 安装phpUnderControl   406
 20.2.3 安装项目   408
 20.3 小结  418
 第21 章 对象、模式与实践   419
 21.1 对象  419
 21.1.1 选择  420
 21.1.2 封装和委托  420
 21.1.3 解耦   420
 21.1.4 复用性   421
 21.1.5 美学  421
 21.2 模式  421
 21.2.1 模式给我们带来了什么   422
 21.2.2 模式和设计原则   422
 21.3 实践   424
 21.3.1 测试  424
 21.3.2 文档   424
 21.3.3 版本控制  425
 21.3.4 自动构建   425
 21.3.5 持续集成  425
 21.3.6 我们还遗漏了什么   425
 21.4 小结   426
 第六部分 附 录
 附录A 参考文献  428
 附录B 简单的解析器  431
 |