本站主要采用城通网盘链接分享,因为其他网盘会和谐链接!非VIP会员的朋友请点击普通下载,弹窗关闭即可。速度可能比较慢,请耐心等待,提高下载速度,送您10元消费红包。

《深入PHP面向对象模式与实践PDF版》电子书内容简介
赞德斯从事互联网应用开发十余年,目前是雅虎公司工程师 ,其编著的《深入PHP:面向对象、模式与实践(第3版)》全面深入地剖析了面向对象的PHP编程与设计。书中首先介绍了PHP的对象特性(包括抽象类、反射、接口和错误处理等)及可帮助开发人员了解类、对象和方法的对象工具,然后介绍了设计模式。阐述了模式的概念,展示了如何在PHP中实现一些关键的模式。并用专门的章节介绍了企业模式和数据库模式。最后,本书围绕PHP应用程序开发。详细介绍了一批极为实用的辅助开发工具。讨论了具有普遍意义的最佳开发实践。另外,这一版中还新增了闭包、命名空间、持续集成等内容。 本书适合每位PHP开发人员进阶参考。可帮助他们掌握PHP面向对象设计和开发的精髓,并最终跻身高端PHP开发人员之列。
本书适合中高级PHP 程序员阅读。
作者简介
Matt Zandstra 从事互联网应用开发十余年,目前是雅虎公司工程师,从事核心模板管理系统的开发。他是一位多产的技术作家,除本书外另著有Sams Teach Yourself PHP in 24 Hours等,他还为Linux Magazine、php|architect杂志、IBM DeveloperWorks、Zend.com和bdz-consult.com写过许多PHP方面的文章。
原文书摘
走向未来PHP6
写到这里的时候,距离PP6的发布还有相当长的一段时间,不过它正处于积极开发中,它将构建在全新的 Zend Engine(zE3)基础之上,将提供对 Unicode字符申处理的内在支持,从面更好地支持国际化。这意味着你在使用任何PHP字符申函数时,都不必再担心它们是否和当前的字符集匹配了。在过去,开发人员为实现很多常见的功能,必须面对处理多字节的难题,不仅效率低,而且不可靠,国际化变得越来越重要,这个核心特性也迅速成为了任何编程语言中必不可少的一部分从某些方面上说,未来已经提前到来了。有一个被规划在PHP6中的特性,已经在PHP5(从PP53起)中得到了支持:命名空间。通过命名空间创建类和函数的命名作用域( naning scope)在扩展系统或者包含类库时,你就可以在不同类库中使用名称相同的类,而不会产生冲突。命名空间还可以把你从使用复杂却必需的命名规范中拯救出来class egaruiz_ util_Conf 4像这样的类名可以防止包之间的冲突,但是会使代码显得不够简沽精练写作本书时,提示返回类型的特性再次被列入PHP6的开发计划。这样你就可以在方法或函数的声明中声明它所返回的对象类型了。这一承诺会被PHP引擎强制实现。提示返回类型将进步改进PHP对模式原则(例如“针对接口编程,而不是针对实现编程”)的支持,我希望能在
深入PHP面向对象模式与实践PDF预览
图书目录
第一部分 介 绍
第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
译者序
译者从接触PHP开发到现在接近10年,参与了不少大型互联网应用的开发,在此过程中,有几个问题是译者一直在关注的中国互联网的发展如日中天,全国互联网用户数量增长很快(已达35亿人)。当前较为流行的站点往往每天要面对至少上百万的访问者,而且需要提供越来越复杂的服务作为研发者的我们,应该如何设计站点,让站点能满足当前阶段的业务需求(访问量和服务),井且保证网站有良好的架构设计,方便未来的后续开发和维护?我们应该如何解决代码的耦合”问题,如何编写出易重用的代码,甚至达到理想化的软件层面的“美学”境界(可能是程序员的终极目标)?
如何建立一套行之有效的团队协作机制,使研发团队日常的开发标准化,提高团队沟通和合作的效率?是否有一些放之四海而皆准的准则或通用的工具可以利用?
正所谓“水涨船高”,PHP这种为互联网而生的编程语言这些年来也一直在进步。如何充分利用PHP中的新特性,使日常的开发更为高效?
读者可以从本书中找到上述问题的部分答案,因为本书不仅仅是一本PHP图书,更是一本鼓励和促进读者超越代码层次,对整个站点的“设计”进行思考的书条条大路通罗马。要设计出漂亮又实用的站点架构,也许每个人都有自己的体会和经验,但就PHP站点而言,从根本上不外乎“面向过程”和“面向对象”两种比较底层的开发思路。对于面向过程的开发方式,每个人或每个团队都有自己的开发习惯,不太容易形成系统,所以这么多年来虽然有不少优秀的面向过程的PHP程序面世,但没能形成任何可供共享的“框架”或“思想”,而面向对象的开发方式则积累了大量公认的模式和框架。从这个角度来说,建议读者朋友多花时间在面向对象设计上。本书就“面向对象”在PHP中的实现做了非常深入的介绍,涵盖了基础、高级知识以及设计模式的实现学习角度来说,译者推荐PHP程序员沿这样的学习路线前进:PHP基础入门(语法、常用函数和扩展等)→面向对象的PHP(本书就是很好的学习资料)→网站软件架构设计(设计模式框架等)一网站物理层次架构设计(分布式计算、存储、负载均衡、高可用性等)。在现实当中上述这些阶段和工作其实是交织在一起的。另外,程序设计之外的很多工具和实践经验,也极其重要。因为个人的能力有限,个人的价值必须在团队和企业当中得到体现。本书介绍的很多工具
本书是PHP 专家经典力作的最新版本。书中主要介绍了如何使用面向对象技术和设计模式编写稳定的、可维护的代码,如何使用Subversion 管理多个开发人员,如何使用Phing 和PEAR 进行构建和安装,以及将构建和测试过程自动化的策略,包括持续集成。
srphpmxdxmsysj.pdf: https://t00y.com/f/560517-575974573-36f433?p=311929 (访问密码:311929)



