图书介绍
PHP实战2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- DagfinnReiersol,MarcusBaker,ChrisShiflett编著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115217455
- 出版时间:2010
- 标注页数:428页
- 文件大小:71MB
- 文件页数:444页
- 主题词:PHP语言-程序设计
PDF下载
下载说明
PHP实战PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 工具和概念2
第1章 PHP与现代软件开发2
1.1 PHP的作用2
1.1.1 PHP流行的原因3
1.1.2 克服PHP的局限5
1.2 语言、原则和模式7
1.2.1 敏捷方法:从蛮干到巧干7
1.2.2 PHP 5和软件趋势8
1.2.3 面向对象编程进化的规律8
1.2.4 设计模式9
1.2.5 重构10
1.2.6 单元测试和TDD10
1.3 小结13
第2章 PHP中的对象14
2.1 对象基础14
2.1.1 为什么将PHP与Java相比较15
2.1.2 对象和类15
2.1.3 Hello world15
2.1.4 构造函数:创建和初始化对象16
2.1.5 继承和关键字extends18
2.1.6 继承构造函数19
2.2 异常处理20
2.2.1 异常的工作原理20
2.2.2 何时使用异常与返回代码22
2.2.3 创建自己的异常类23
2.2.4 用异常替换PHP内置的严重错误24
2.2.5 不要过度使用异常24
2.3 PHP 4和PHP 5中的对象引用24
2.3.1 对象引用的工作原理25
2.3.2 对象引用的优势26
2.3.3 引用何时没有用处27
2.4 方法调用的拦截和类的实例化27
2.4.1 什么是方法重载27
2.4.2 PHP中的Java式方法重载27
2.4.3 面向方面的体验:记录方法调用的日志28
2.4.4 自动加载类30
2.5 小结31
第3章 有效使用PHP类32
3.1 可见性:私有和受保护的方法与变量32
3.1.1 对方法可见性的要求33
3.1.2 何时使用私有方法34
3.1.3 何时使用受保护方法34
3.1.4 让实例变量保持private或protected属性35
3.1.5 私有变量和受保护变量的存取36
3.1.6 两全其美——通过拦截来控制变量37
3.1.7 final类和方法38
3.2 没有对象的类:类方法、类变量和类常量39
3.2.1 类(静态)方法40
3.2.2 何时使用类方法41
3.2.3 类变量41
3.2.4 类常量42
3.2.5 PHP中常量的限制43
3.3 抽象类和方法(函数)45
3.3.1 什么是抽象类和方法45
3.3.2 使用抽象类45
3.4 类的类型提示46
3.4.1 类型提示的作用46
3.4.2 何时使用类型提示47
3.5 接口48
3.5.1 什么是接口49
3.5.2 PHP中需要接口吗49
3.5.3 用接口让设计更清晰50
3.5.4 用接口改善类的类型提示50
3.5.5 PHP 5与Java中的接口51
3.6 小结52
第4章 理解对象和类53
4.1 对象和类的优点54
4.1.1 类帮助组织54
4.1.2 可以告诉对象要做什么55
4.1.3 多态性55
4.1.4 对象让代码更易读56
4.1.5 类帮助消除重复性代码59
4.1.6 可以重用对象和类60
4.1.7 避免牵一发而动全身61
4.1.8 对象提供类型安全61
4.2 好设计的标准62
4.2.1 不要混淆结果和含义64
4.2.2 透明性64
4.2.3 简单设计64
4.2.4 一次并且只有一次65
4.3 什么是对象67
4.3.1 对象来自虚构世界67
4.3.2 域对象基础68
4.4 小结70
第5章 理解类关系71
5.1 继承71
5.1.1 将继承作为思考工具72
5.1.2 继承重构73
5.2 对象组合77
5.3 接口79
5.3.1 将接口作为思考工具79
5.3.2 单继承和多继承80
5.4 优先考虑对象组合而不是类继承80
5.4.1 避免父类命名含糊81
5.4.2 避免继承层次结构过深81
5.5 小结82
第6章 面向对象原则83
6.1 原则和模式84
6.1.1 架构原则或模式84
6.1.2 了解面向对象原则85
6.2 开放-封闭原则(OCP)85
6.2.1 初识OCP85
6.2.2 用类替换的情况86
6.2.3 OCP在PHP中是如何相关的88
6.3 单一职责原则(SRP)88
6.3.1 混合职责:模板引擎89
6.3.2 一个试验:分离职责91
6.3.3 实验是否成功93
6.4 依赖倒置原则(DIP)94
6.4.1 什么是依赖性94
6.4.2 插入接口96
6.5 分层设计96
6.5.1 “三层”模式及其同属97
6.5.2 Web应用程序能否有域层98
6.6 小结99
第7章 设计模式100
7.1 策略模式101
7.1.1 使用策略模式的“Hello world”101
7.1.2 策略模式的用处103
7.2 适配器模式104
7.2.1 初学适配器模式104
7.2.2 让一个模板引擎与另一个相像105
7.2.3 具有多个类的适配器模式106
7.2.4 调整为通用接口109
7.3 装饰器模式109
7.3.1 资源装饰器110
7.3.2 装饰与再装饰111
7.4 空对象模式113
7.4.1 混合黑暗的灯和明亮的灯114
7.4.2 空策略对象114
7.5 迭代器模式115
7.5.1 迭代器的工作原理115
7.5.2 使用迭代器的好原因116
7.5.3 迭代器与普通数组116
7.5.4 SPL迭代器117
7.5.5 SPL如何帮助我们解决迭代器和数组间的冲突118
7.6 组合模式118
7.6.1 用组合模式实现菜单118
7.6.2 基本理论120
7.6.3 连贯接口121
7.6.4 递归处理121
7.6.5 我们的方法低效吗123
7.7 小结123
第8章 设计指南:日期和时间处理124
8.1 为何日期和时间处理要面向对象124
8.1.1 更容易,但并非更简单125
8.1.2 面向对象的优势125
8.2 找到正确的抽象126
8.2.1 单个时间表示法:时间点、Instant、DateAndTime126
8.2.2 不同类别的时间范围:期间、持续时间、日期范围、时间间隔127
8.3 高级对象构建128
8.3.1 使用创建方法128
8.3.2 多个构造函数129
8.3.3 使用工厂类132
8.4 大型结构133
8.4.1 包的概念133
8.4.2 命名空间和包134
8.4.3 PHP缺少命名空间支持135
8.4.4 处理名称冲突135
8.5 使用值对象140
8.5.1 对象引用带来的麻烦141
8.5.2 实现值对象142
8.5.3 更改不可变的对象142
8.6 实现基本类143
8.6.1 DateAndTime143
8.6.2 属性和字段144
8.6.3 期间149
8.6.4 时间间隔151
8.7 小结151
第二部分 测试和重构154
第9章 测试驱动开发154
9.1 过程形成质量155
9.1.1 本示例的需求155
9.1.2 报告测试结果156
9.2 从数据库取数157
9.2.1 基本测试157
9.2.2 第一个真正的测试158
9.2.3 通过测试160
9.2.4 让代码运行161
9.2.5 测试直到确信没有问题163
9.3 数据库插入和更新&164
9.3.1 让测试更易读165
9.3.2 红,绿,重构166
9.4 真正的数据库事务处理168
9.4.1 测试事务处理168
9.4.2 实现事务处理170
9.4.3 调试的终结171
9.4.4 测试是工具,不是替代品171
9.5 小结172
第10章 高级测试技术173
10.1 具有持久化功能的联系人管理器174
10.1.1 运行多个测试用例174
10.1.2 测试联系人的持久化175
10.1.3 Contact和ContactFinder类177
10.1.4 setUp()和tearDown()178
10.1.5 最终版本179
10.2 向联系人发送邮件180
10.2.1 设计Mailer类及其测试环境180
10.2.2 手工编写模拟对象181
10.2.3 更为完善的模拟对象182
10.2.4 自顶向下测试183
10.2.5 模拟的局限性184
10.3 虚拟的邮件服务器185
10.3.1 安装fakemail186
10.3.2 邮件测试187
10.3.3 网关作为适配器190
10.4 小结190
第11章 重构Web应用程序192
11.1 真实世界中的重构193
11.1.1 早期重构和后期重构193
11.1.2 重构与重新实现194
11.2 重构基础:可读性和重复性代码195
11.2.1 提高可读性195
11.2.2 消除重复性代码197
11.3 分离标记与程序代码199
11.3.1 分离何以有用200
11.3.2 合宜使用CSS200
11.3.3 清理生成链接的函数201
11.3.4 在SimpleTest中引入模板205
11.4 简化条件表达式209
11.4.1 简单示例210
11.4.2 稍长的示例:身份验证代码211
11.4.3 处理条件HTML216
11.5 从面向过程到面向对象的重构217
11.5.1 测试面向过程代码217
11.5.2 进行重构218
11.6 小结221
第12章 用Web测试控制222
12.1 再看联系人管理器223
12.1.1 样板223
12.1.2 创建Web测试225
12.1.3 用虚拟网页交互通过测试226
12.1.4 一次编写,到处测试227
12.2 可工作的表单229
12.2.1 尝试将联系人保存到数据库中230
12.2.2 创建数据库231
12.2.3 为查找器创建存根232
12.3 质量保证234
12.3.1 让联系人管理器可以进行单元测试234
12.3.2 从用例到验收测试236
12.4 可怕的遗留代码238
12.5 小结242
第三部分 构建Web界面244
第13章 使用模板管理Web表现层244
13.1 分离表现层和域逻辑244
13.1.1 分离还是不分离245
13.1.2 为什么使用模板245
13.2 哪个模板引擎247
13.2.1 普通PHP248
13.2.2 定制语法:Smarty249
13.2.3 属性语言:PHPTAL251
13.3 转换:XSLT254
13.3.1 “XML化”网页255
13.3.2 设置XSLT256
13.3.3 XSLT样式表256
13.3.4 从PHP运行XSLT258
13.4 将逻辑与模板分离259
13.4.1 视图协助器260
13.4.2 交替行颜色260
13.4.3 处理日期和时间格式261
13.4.4 生成层级显示263
13.4.5 防止从模板更新265
13.5 模板和安全266
13.5.1 PHPTAL266
13.5.2 Smarty267
13.5.3 XSLT267
13.6 小结267
第14章 构建复杂网页269
14.1 组合模板(复合视图)269
14.1.1 复合视图:一个或多个设计模式269
14.1.2 复合数据和复合模板270
14.2 实现直观的复合视图270
14.2.1 我们的目标270
14.2.2 使用Smaity272
14.2.3 使用PHPTAL273
14.2.4 使用PHPTAL的页面宏274
14.3 复合视图示例275
14.3.1 制作打印友好的页面276
14.3.2 将现有应用程序集成到复合视图中277
14.3.3 多方显示站点和Fowler的两步视图278
14.4 小结280
第15章 用户交互281
15.1 MVC体系结构282
15.1.1 拨开MVC的迷雾283
15.1.2 定义基本概念284
15.1.3 命令还是操作286
15.1.4 Web MVC不是富客户MVC286
15.2 Web命令模式287
15.2.1 工作原理288
15.2.2 命令标识符288
15.2.3 Web处理程序289
15.2.4 命令执行器289
15.3 保持实现简单290
15.3.1 示例:“原生的”Web应用程序290
15.3.2 引入命令函数292
15.4 小结294
第16章 控制器296
16.1 控制器和请求对象297
16.1.1 基本请求对象297
16.1.2 安全问题298
16.2 使用页面控制器299
16.2.1 简单示例300
16.2.2 从页面控制器选择视图301
16.2.3 让命令可进行单元测试302
16.2.4 避免HTML输出303
16.2.5 使用模板303
16.2.6 重定向问题304
16.3 构建前端控制器307
16.3.1 一个命令一个类的Web处理程序307
16.3.2 命令还需要些什么308
16.3.3 使用命令组309
16.3.4 有多个提交按钮的表单310
16.3.5 用JavaScript生成命令311
16.3.6 用于复合视图的控制器311
16.4 小结312
第17章 输入验证314
17.1 应用程序设计中的输入验证315
17.1.1 验证和应用程序体系结构315
17.1.2 验证策略316
17.1.3 命名表单组件317
17.2 服务器端验证及其问题317
17.2.1 重复问题318
17.2.2 样式问题318
17.2.3 测试和页面导航问题319
17.2.4 我们能解决多少问题319
17.3 客户端验证320
17.3.1 普通的乏味的客户端验证320
17.3.2 逐个验证字段321
17.3.3 你做不到这一点323
17.3.4 表单326
17.4 面向对象的服务器端验证327
17.4.1 规则和验证程序328
17.4.2 安全的请求对象体系结构329
17.4.3 现在验证非常简单333
17.4.4 让其变得简单的类334
17.4.5 使用Specification对象336
17.4.6 知识丰富的设计339
17.4.7 向外观添加验证340
17.5 同步服务器端和客户端验证341
17.5.1 表单生成器342
17.5.2 配置文件342
17.5.3 从客户端验证生成服务器端验证343
17.6 小结343
第18章 表单处理345
18.1 用HTML_QuickForm设计解决方案345
18.1.1 最小需求和设计346
18.1.2 将生成的元素放到HTML表单中346
18.1.3 找到抽象347
18.1.4 更为具体的需求348
18.1.5 选择问题349
18.2 实现解决方案350
18.2.1 包装HTML QuickForm元素350
18.2.2 输入控件351
18.2.3 哪个类创建表单控件354
18.2.4 验证355
18.2.5 在模板中使用表单对象357
18.2.6 下一步做什么359
18.3 小结359
第19章 数据库连接、抽象和配置361
19.1 数据库抽象362
19.1.1 预处理语句362
19.1.2 面向对象的数据库查询364
19.2 装饰和适配数据库资源对象366
19.2.1 简单的可配置数据库连接366
19.2.2 从结果集制作与SPL兼容的迭代器367
19.3 让数据库连接可用369
19.3.1 单例和类似模式370
19.3.2 服务定位器和注册表371
19.4 小结373
第四部分 数据库和基础结构第20章 对象和SQL376
20.1 对象-关系阻抗不匹配376
20.2 封装和隐藏SQL378
20.2.1 基本示例378
20.2.2 在SQL语句中替换字符串379
20.3 通用化SQL383
20.3.1 列的列表和表名383
20.3.2 使用SQL别名386
20.3.3 生成INSERT、UPDATE和DELETE语句386
20.3.4 查询对象390
20.3.5 适用的设计模式391
20.4 小结391
第21章 数据类设计392
21.1 最简单的方法392
21.1.1 用Finder类检索数据393
21.1.2 主要程序:表数据网关395
21.2 让对象自身持久化400
21.2.1 自我持久化的查找器401
21.2.2 让对象存储自己405
21.3 数据映射器模式406
21.3.1 数据映射器和DA0406
21.3.2 这些模式无甚差别408
21.3.3 模式小结409
21.4 实际使用效果409
21.4.1 模式在典型Web应用程序中的效果410
21.4.2 优化查询411
21.5 小结411
附录A 测试工具和小技巧412
附录B 安全420
热门推荐
- 33174.html
- 2799679.html
- 466925.html
- 2552409.html
- 3866169.html
- 2777608.html
- 3820557.html
- 3864264.html
- 2950480.html
- 1013967.html
- http://www.ickdjs.cc/book_1465028.html
- http://www.ickdjs.cc/book_61091.html
- http://www.ickdjs.cc/book_3450606.html
- http://www.ickdjs.cc/book_3010910.html
- http://www.ickdjs.cc/book_152351.html
- http://www.ickdjs.cc/book_3803775.html
- http://www.ickdjs.cc/book_1903385.html
- http://www.ickdjs.cc/book_298787.html
- http://www.ickdjs.cc/book_1232660.html
- http://www.ickdjs.cc/book_1927445.html