分享
 
 
 

PHP高级程序设计:模式、框架与测试(图灵程序设计丛书·Web开发系列)

PHP高级程序设计:模式、框架与测试(图灵程序设计丛书·Web开发系列)  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  參考價格: 点此进入淘宝搜索页搜索
  分類: 图书,计算机与互联网,程序语言与软件开发,语言与开发工具,综合,
  品牌: Kevin McArthur

基本信息·出版社:人民邮电出版社

·页码:290 页

·出版日期:2009年

·ISBN:7115193177/9787115193179

·条形码:9787115193179

·包装版本:1版

·装帧:平装

·开本:16

·正文语种:中文

·丛书名:图灵程序设计丛书·Web开发系列

产品信息有问题吗?请帮我们更新产品信息。

内容简介《PHP高级程序设计:模式、框架与测试》采用循序渐进的方式介绍了用PHP 进行Web 开发的相关知识。书中首先从OOP 采用的机制—— 抽象类、接口、契约式编程开始讲起,然后介绍了静态方法、单例模式、工厂模式和PHP 6 的新特性等内容, 接着介绍了测试和文档方面的内容,还介绍了标准PHP 库SPL 方面的知识以及PHP 开发人员最有可能用到的MVC 模式,最后介绍了Ajax 、JSON 、SOAP Web 服务以及SSL 客户端验证等Web 2.0 方面的内容。

《PHP高级程序设计:模式、框架与测试》适合中、高级的PHP 程序员阅读。

作者简介Kevin McArthur,世界知名的PHP专家。他是基于Zend Framework的开源项目的核心开发人员,并因此获得了世界性的声誉。此外,他还是规模最大的PHP支持组织之一PHP EFnet的管理员。

媒体推荐“很长时间没有看到这样有价值的PHP高级图书了,我从本书中获益匪浅。强烈推荐!”

——Quentin Zervaas,资深PHP程序员,《PHP Web 2.0开发实战》一书作者

“本书是我读过的最好的技术书,推荐阅读。”

——Amazon.com

编辑推荐《PHP高级程序设计:模式、框架与测试》填补了这一空白。它专门针对有一定经验的PHP程序员,详细讲解了对他们最为重要的主题:高级面向对象、设计模式、文档、测试和标准PHP库等内容。同时,为适应目前Web开发的新趋势,作者还全面探讨了MVC架构和ZendFramework,以及Ajax、JSON、SOAP等Web2.0技术。书中穿插的大量软件开发实战经验和对PHP编程思想的感悟,将大大提升你的内在功力。享有盛誉的PHP高级教程,ZendFramework核心开发人员力作,深入设计模式、PHP标准库和JSON。

今天,PHP已经是无可争议的Web开发主流语言。PHP5以后,它的面向对象特性也足以与Java和C#相抗衡。然而,讲述PHP高级特性的资料一直缺乏,大大影响了PHP语言的深入应用。

目录

第一部分 OOP和模式

第1章 抽象类.接口和契约式编程 2

1.1 抽象类 2

1.2 接口 4

1.3 instanceof操作符 7

1.4 契约式编程 8

1.5 小结 8

第2章 静态变量.成员和方法 9

2.1 静态变量 9

2.2 类中静态元素的使用 10

2.2.1 静态成员 10

2.2.2 双冒号(paamayimnekudotayim) 11

2.2.3 静态方法 14

2.3 “静态”特性的争论 15

2.4 小结 15

第3章 单例模式和工厂模式 17

3.1 职责和单例模式 17

3.2 工厂模式 19

3.2.1 图像对象工厂 20

3.2.2 可移植的数据库 22

3.3 小结 24

第4章 异常 26

4.1 实现异常 26

4.1.1 异常元素 26

4.1.2 扩展异常 28

4.2 记录异常日志 30

4.2.1 记录自定义异常的日志 30

4.2.2 定义未捕捉的异常处理程序 31

4.3 异常产生的开销 31

4.4 错误代码 32

4.5 类型提示和异常 33

4.6 重新抛出异常 33

4.7 小结 34

第5章 PHP6中的新特性 35

5.1 安装PHP 35

5.2 PHP6中的Unicode支持 37

5.2.1 Unicode语义 37

5.2.2 Unicode排序规则 39

5.3 命名空间 40

5.4 延迟静态绑定 41

5.5 具有动态特性的静态方法 43

5.6 三目运算符(ifsetor) 43

5.7 XMLWriter类 43

5.8 小结 45

第二部分 测试和文档编写

第6章 文档编写和编码规范 48

6.1 编码规范 48

6.2 PHP注释和文法解析 49

6.2.1 注释的类型 50

6.2.2 关于文档注释的更多信息 50

6.2.3 文法解析 51

6.2.4 元数据 51

6.3 PHPDoc 52

6.4 DocBook 55

6.4.1 创建DocBook要用到的XML文件 55

6.4.2 解析DocBook文件 56

6.4.3 使用DocBook的元素 59

6.5 小结 62

第7章 反射API 64

7.1 反射API介绍 64

7.1.1 获得用户声明的类 65

7.1.2 理解使用反射技术的插件架构 66

7.2 解析基于反射的文档数据 71

7.2.1 安装文档块分词器 72

7.2.2 访问文档注释数据 73

7.2.3 给文档注释数据做分词处理 73

7.2.4 解析标识符 74

7.3 扩展反射API 76

7.3.1 解析器与反射API的集成 77

7.3.2 扩展反射类 78

7.3.3 更新解析器以处理行内标签 85

7.3.4 添加特性 88

7.4 小结 92

第8章 测试.部署和持续集成 93

8.1 用作版本控制的Subversion 93

8.1.1 安装Subversion 94

8.1.2 设置Subversion 94

8.1.3 提交修改和解决冲突 95

8.1.4 激活对Subversion的访问功能 97

8.2 用于单元测试的PHPUnit 98

8.2.1 安装PHPUnit 98

8.2.2 创建第一个单元测试 98

8.2.3 理解PHPUnit 100

8.3 用于部署的Phing 102

8.3.1 安装Phing 102

8.3.2 编写Phing部署脚本 103

8.4 Xinc,持续集成服务器 106

8.4.1 安装Xinc 106

8.4.2 创建Xinc配置文件 106

8.4.3 启动Xinc 107

8.5 用于调试的Xdebug 107

8.5.1 安装Xdebug 108

8.5.2 使用Xdebug跟踪代码执行 108

8.5.3 使用Xdebug执行基准测试 110

8.5.4 使用Xdebug检查代码覆盖 110

8.5.5 使用Xdebug进行远程调试 111

8.6 小结 111

第三部分 SPL(标准PHP库)

第9章 SPL简介 114

9.1 SPL基础 114

9.2 迭代器 115

9.2.1 Iterator接口 115

9.2.2 迭代器辅助函数 116

9.3 数组重载 117

9.3.1 ArrayAccess接口 117

9.3.2 计数和数组访问 117

9.4 观察者模式 118

9.5 序列化 121

9.6 SPL自动加载 123

9.7 对象标识符 126

9.8 小结 126

第10章 SPL迭代器 128

10.1 迭代器接口和迭代器 128

10.1.1 迭代器接口 128

10.1.2 迭代器 130

10.2 迭代器的实际用法 142

10.2.1 使用SimpleXML解析XML文件.. 142

10.2.2 使用DBA访问平面文件数据库 143

10.3 小结 144

第11章 SPL文件和目录处理 145

11.1 文件和目录信息 145

11.2 目录的迭代访问 147

11.2.1 列出文件和目录的清单 148

11.2.2 查找文件 150

11.2.3 创建自定义文件过滤迭代器 151

11.3 SPL文件对象操作 153

11.3.1 文件内容的迭代访问 153

11.3.2 CSV操作 153

11.3.3 搜索文件 157

11.4 小结 158

第12章 SPL数组重载 160

12.1 ArrayAccess接口介绍 160

12.2 ArrayObject介绍 161

12.3 创建一个SPL购物车 162

12.4 使用对象作为键值 165

12.5 小结 168

第13章 SPL异常 169

13.1 逻辑异常 169

13.2 运行时异常 171

13.3 无效函数调用异常和无效方法调用异常 171

13.4 域异常 172

13.5 范围异常 172

13.6 无效参数异常 173

13.7 长度异常 174

13.8 溢出异常 175

13.9 向下溢出异常 175

13.10 小结 177

第四部分 MVC模式

第14章 MVC架构 180

14.1 为什么使用MVC 180

14.2 MVC应用程序布局 181

14.2.1 从Web服务器开始 181

14.2.2 动作和控制器 182

14.2.3 模型 182

14.2.4 视图 182

14.3 选择MVC框架的标准 182

14.3.1 MVC框架的架构 182

14.3.2 MVC框架文档 183

14.3.3 MVC框架的社区 183

14.3.4 MVC框架的支持 183

14.3.5 MVC框架的灵活性 184

14.4 实现MVC框架 184

14.4.1 设置一个虚拟主机 184

14.4.2 创建一个MVC框架 185

14.5 小结 191

第15章 Zend框架简介 192

15.1 设置Zend框架 192

15.1.1 安装Zend框架 192

15.1.2 创建一个虚拟主机 193

15.1.3 引导文件 194

15.2 创建控制器.视图和模型 196

15.2.1 添加索引控制器 196

15.2.2 添加视图 196

15.2.3 定义模型 197

15.3 添加功能 200

15.3.1 使用request和response

对象 201

15.3.2 使用内置的操作辅助类 202

15.3.3 使用内置的视图辅助类 203

15.3.4 验证输入信息 204

15.4 小结 208

第16章 Zend框架高级功能 209

16.1 管理配置文件 209

16.1.1 使用数组的方法 209

16.1.2 INI方法 210

16.1.3 XML方法 210

16.2 设置站点级别的视图变量 211

16.3 共享对象 211

16.4 错误处理 212

16.5 应用程序日志记录 213

16.6 缓存 214

16.6.1 缓存功能在安全性上的考虑 214

16.6.2 缓存技术 215

16.7 验证用户 217

16.8 在PHP语言中使用JSON 220

16.9 自定义路由 221

16.10 管理会话 223

16.11 发送邮件 224

16.12 创建PDF文件 225

16.12.1 创建新的PDF页面 226

16.12.2 在PDF页面上绘图 226

16.13 与Web服务相集成 228

16.14 小结 229

第17章 应用Zend框架 230

17.1 模块和模型设置 230

17.1.1 常规的模块化的目录结构 230

17.1.2 模型库和Zend_Loader 231

17.2 请求生命周期 232

17.3 创建插件 233

17.4 创建辅助类 234

17.4.1 编写操作辅助类 234

17.4.2 编写视图辅助类 234

17.5 实现访问控制功能 235

17.6 使用两步视图 238

17.6.1 创建一个主布局 238

17.6.2 使用占位符 239

17.7 小结 240

第五部分 Web2.0

第18章 Ajax和JSON 242

18.1 JSON和PHP 242

18.1.1 JSON扩展 243

18.1.2 Zend框架中的JSON 244

18.2 JSON和JavaScript 244

18.3 一些Ajax项目 248

18.3.1 GET请求 248

18.3.2 POST请求 249

18.4 小结 252

第19章 Web服务和SOAP协议介绍 253

19.1 PHPWeb服务架构介绍 253

19.2 WSDL介绍 254

19.2.1 WSDL术语 254

19.2.2 WSDL文件 254

19.3 SOAP介绍 256

19.4 使用PHPSOAP扩展 257

19.4.1 SoapClient类的方法和选项 259

19.4.2 SoapServer类的方法和选项 261

19.5 真实的示例 261

19.6 小结 264

第20章 高级Web服务 265

20.1 复杂类型 265

20.1.1 复杂类型示例 265

20.1.2 类映射 270

20.2 身份验证 271

20.2.1 HTTP验证 271

20.2.2 通信密钥验证 271

20.2.3 客户端证书验证 272

20.3 会话 272

20.4 对象和持久化 273

20.5 二进制数据传输 274

20.6 小结 276

第21章 证书验证 277

21.1 PKI安全性 277

21.1.1 CA 277

21.1.2 Web服务器证书 278

21.1.3 客户端证书 278

21.1.4 根CA证书 278

21.2 设置客户端证书验证 278

21.2.1 创建客户端的证书验证机制 279

21.2.2 创建一个自签名的Web服务器证书 281

21.2.3 为SSL配置Apache服务器 283

21.2.4 创建客户端证书 284

21.2.5 只允许证书验证过的客户端访问服务器 286

21.2.6 测试证书 287

21.3 PHP验证控制 287

21.3.1 将PHP绑定到证书上 288

21.3.2 设置Web服务验证 288

21.4 小结... 289

……[看更多目录]

序言在过去的十年间,PHP已经从一套为Web站点开发人员提供的简单工具转化成完整的00P(面向对象编程)语言了。在Webl立用开发方面,PHP现在可与Java和C#这样的主流编程语言抗衡,越来越多的公司为了给站点提供更加强大的功能都采用了PHP。原因很清楚:PHP既是一门易学的语言,又具有强大的特性。

通过阅读本书,你将会深入理解OOP理论,并学到如何使用框架和高级的系统互操作功能,最大限度地发挥出:PHP编程的威力。读者对象

这是一本高级书。我非常慎重地选择本书应该包含的内容以及读者应该掌握的知识。读者应该对HTTP和PHP有深刻的理解,也就是说,应该了解如何创建Web页面和Web表单,并且还应该理解像HTTP请求生命周期这样的关键概念。

如果你还不了解这些内容,那么建议阅读由I~arry ullman合著的PHP for the Web;VisualQuickStart Guide一书。这是一本非常好的介绍PHP编程的书,任何希望成为PHP开发人员的人都绝对应该阅读它。

如果你自己的PHP编程水平已达到中高级,那么本书正好适合你。本书结构

本书每一章内容都在前面章节的基础上展开,同时也考虑到读者的基础参差不齐。如果你认为已经了解了某章讲述的内容,那么建议你跳过那一章,但最好还是读一下每章末尾的“小结”部分,那是每一章内容的扼要总结。不过,古人云“温故而知新”,就算是最熟练的程序员应该也会在每章中有新的收获。

本书分为五个部分。

第一部分,OOP和模式。这部分是学习高级的OOP概念必备的基础知识。该部分直接进入主题,讲解了抽象类、接口、静态方法、单例和工厂之类的模式,以及异常等内容。最后介绍了PHP6所具有的新特性。

文摘插图:

PHP高级程序设计:模式、框架与测试(图灵程序设计丛书·Web开发系列)

本章将介绍抽象类、接口和一种称为契约式编程的技术。使用这些OOP机制,所编写的代码就不限于只能计算或者输出内容了。这些机制能够在概念层次上定义类之间交互作用的规则,也为应用程序的扩展和定制提供了基础。

1.1 抽象类

抽象类(abstract class)机制中总是要定义一个公共的基类(base class),而将特定的细节留给继承者来实现。具体地说,当需要创建一个基础的对象,而创建所需的某些方法并没有完整地定义出来时,就需要用到抽象类。通过使用抽象概念,可以在开发项目中创建扩展性很好的架构。

例如,文件格式解析功能的实现就非常适合使用抽象方式。实现这一功能时,我们知道,为了与其他类交互,需要一系列方法,女getData()或getCreatedDate()。然而,我们希望将解析文件格式的方法留给为某种特定文件格式而设计的继承类来实现。通过使用抽象类,我们可以定义一个必须存在的parse()方法,而不需要明确这个方法是如何实现的。当然,为了实现起来更加容易,我们也可以将这一抽象的需求和完整定义的方法放在同一个类中。

由于抽象类没有为它所声明的所有方法定义实现的内容,大家可能会将抽象类看作是分部类。抽象类可以不实现所有方法,它具有定义抽象方法的特殊能力,这些抽象方法只是缺少方法体的方法原型。当抽象类被继承时,这些方法将会被实现。然而,抽象类不一定只包含抽象方法,我们也可以在其中定义具有完整实现体的方法。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
>>返回首頁<<
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有