好书推荐 好书速递 排行榜 读书文摘

深入PHP

深入PHP
作者:Matt Zandstra
译者:陈浩 / 吴孙滨 / 胡丹
副标题:面向对象、模式与实践(第2版)
出版社:人民邮电出版社
出版年:2010-05
ISBN:9787115225788
行业:计算机
浏览数:11

内容简介

本书全面深入地剖析了面向对象的PHP编程与设计。首先介绍了PHP的OO特性,包括类声明、对象实例化、继承、方法与属性封装以及静态方法与属性、抽象类、接口、异常处理、对象克隆等高级主题。然后介绍了设计模式,阐述了模式的概念,展示了如何在PHP中实现几个关键的模式,用专门的章节介绍了企业模式和数据库模式。本书最后一部分围绕PHP应用程序开发,详细介绍了一批极为实用的辅助开发工具,讨论了具有普遍意义的最佳开发实践。

本书适合每位PHP程序员进阶参考,帮助他们掌握PHP面向对象设计和开发的精髓,跻身高端PHP程序员之列。

......(更多)

作者简介

Matt Zandstra Yahoo公司的高级程序员,曾从事过教师等工作,著有Sams Teach Yourself PHP in 24 Hours等书,还为Linux Magazine、IBM DeveloperWorks、Zend.com和bdz-consult.com写过PHP方面的文章。

......(更多)

目录

第一部分 介绍

第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 本书第2版中的新内容 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 12

2.3 拥护和疑虑:关于对象的争辩 13

2.4 小结 13

第3章 对象基础 14

3.1 类和对象 14

3.1.1 编写第一个类 14

3.1.2 第一个对象(或两个) 15

3.2 设置类中的属性 15

3.3 使用方法 18

3.4 参数和类型 20

3.4.1 基本类型 20

3.4.2 获得提示:对象类型 23

3.5 继承 24

3.5.1 继承问题 24

3.5.2 使用继承 28

3.5.3 public、private、protected:管理类的访问 32

3.6 小结 35

第4章 高级特性 36

4.1 静态方法和属性 36

4.2 常量属性 39

4.3 抽象类 39

4.4 接口 41

4.5 错误处理 43

4.6 Final类和方法 48

4.7 使用拦截器 49

4.8 析构方法 53

4.9 使用__clone()复制对象 54

4.10 定义对象的字符串值 56

4.11 小结 57

第5章 对象工具 58

5.1 PHP和包 58

5.1.1 PHP和命名空间 60

5.1.2 包含路径 62

5.1.3 自动加载 63

5.2 类函数和对象函数 64

5.2.1 查找类 64

5.2.2 了解对象或类 65

5.2.3 了解类中的方法 66

5.2.4 了解类属性 67

5.2.5 了解继承 67

5.2.6 方法调用 68

5.3 反射API 69

5.3.1 入门 69

5.3.2 开始行动 69

5.3.3 检查类 71

5.3.4 检查方法 72

5.3.5 检查方法参数 74

5.3.6 使用反射API 75

5.4 小结 78

第6章 对象与设计 79

6.1 代码设计的定义 79

6.2 面向对象设计和过程式编程 80

6.2.1 职责 83

6.2.2 内聚 83

6.2.3 耦合 83

6.2.4 正交 84

6.3 选择类 84

6.4 多态 85

6.5 封装 86

6.6 忘记细节 87

6.7 四个方向标 88

6.7.1 代码重复 88

6.7.2 类知道的太多 88

6.7.3 万能的类 88

6.7.4 条件语句 89

6.8 UML 89

6.8.1 类图 89

6.8.2 时序图 94

6.9 小结 95

第三部分 模式

第7章 什么是设计模式?为何使用它们 98

7.1 什么是设计模式 98

7.2 设计模式概览 100

7.2.1 命名 100

7.2.2 问题 100

7.2.3 解决方案 101

7.2.4 效果 101

7.3 《设计模式》格式 101

7.4 为什么使用设计模式 102

7.4.1 一个设计模式定义了一个问题 102

7.4.2 一个设计模式定义了一个解决方案 102

7.4.3 设计模式是语言无关的 102

7.4.4 模式定义了一组词汇 102

7.4.5 模式是经过测试的 103

7.4.6 模式是为协作而设计的 103

7.4.7 设计模式促进良好设计 103

7.5 PHP与设计模式 103

7.6 小结 104

第8章 模式原则 105

8.1 模式的启示 105

8.2 组合与继承 106

8.2.1 问题 106

8.2.2 使用组合 108

8.3 解耦 110

8.3.1 问题 110

8.3.2 降低耦合 111

8.4 针对接口编程,而不是针对实现编程 112

8.5 变化的概念 113

8.6 父子关系 113

8.7 模式 114

8.7.1 用于生成对象的模式 114

8.7.2 用于组织对象和类的模式 114

8.7.3 面向任务的模式 114

8.7.4 企业模式 114

8.7.5 数据库模式 114

8.8 小结 115

第9章 生成对象 116

9.1 生成对象的问题和解决方法 116

9.2 单例模式 119

9.2.1 问题 120

9.2.2 实现 120

9.2.3 结果 122

9.3 工厂方法模式 122

9.3.1 问题 122

9.3.2 实现 125

9.3.3 结果 126

9.4 抽象工厂模式 127

9.4.1 问题 127

9.4.2 实现 128

9.4.3 结果 129

9.4.4 原型模式 131

9.4.5 问题 132

9.4.6 实现 133

9.5 某些模式的骗术 134

9.6 小结 136

第10章 让面向对象编程更加灵活的模式 137

10.1 构造可灵活创建对象的类 137

10.2 组合模式 137

10.2.1 问题 138

10.2.2 实现 139

10.2.3 效果 143

10.2.4 组合模式小结 146

10.3 装饰模式 146

10.3.1 问题 146

10.3.2 实现 148

10.3.3 效果 151

10.4 外观模式 151

10.4.1 问题 152

10.4.2 实现 153

10.4.3 效果 153

10.5 小结 154

第11章 执行及描述任务 155

11.1 解释器模式 155

11.1.1 问题 155

11.1.2 实现 156

11.1.3 解释器的问题 162

11.2 策略模式 163

11.2.1 问题 163

11.2.2 实现 164

11.3 观察者模式 167

11.4 访问者模式 173

11.4.1 问题 174

11.4.2 实现 175

11.4.3 访问者模式的问题 178

11.5 命令模式 179

11.5.1 问题 179

11.5.2 实现 179

11.6 小结 183

第12章 企业模式 184

12.1 架构概述 184

12.1.1 模式 184

12.1.2 应用程序和层 185

12.2 企业架构之外的基础模式 187

12.2.1 注册表 187

12.2.2 实现 188

12.3 表现层 196

12.3.1 前端控制器 196

12.3.2 应用控制器 205

12.3.3 页面控制器 214

12.3.4 模板视图和视图助手 218

12.4 业务逻辑层 220

12.4.1 事务脚本 221

12.4.2 领域模型 225

12.5 小结 227

第13章 数据库模式 228

13.1 数据层 228

13.2 数据映射器 228

13.2.1 问题 229

13.2.2 实现 229

13.2.3 效果 239

13.3 标识映射 239

13.3.1 问题 240

13.3.2 实现 240

13.3.3 效果 242

13.4 工作单元 243

13.4.1 问题 243

13.4.2 实现 243

13.4.3 效果 246

13.4.4 延迟加载 247

13.4.5 问题 247

13.4.6 实现 247

13.4.7 效果 249

13.5 领域对象工厂 249

13.5.1 问题 249

13.5.2 实现 249

13.5.3 效果 250

13.6 标识对象 252

13.6.1 问题 252

13.6.2 实现 252

13.6.3 效果 256

13.7 选择工厂和更新工厂模式 257

13.7.1 问题 257

13.7.2 实现 257

13.7.3 效果 259

13.8 数据映射器中剩下些什么 260

13.9 小结 262

第四部分 实践

第14章 良好和糟糕的实践 264

14.1 超越代码 264

14.2 借一个轮子 264

14.3 合作愉快 266

14.4 为你的代码插上双翼 267

14.5 文档 267

14.6 测试 268

14.7 小结 269

第15章 PEAR 270

15.1 什么是PEAR 270

15.2 安装PEAR包 271

15.3 使用PEAR包 273

15.4 创建自己的PEAR包 278

15.4.1 package.xml 278

15.4.2 package.xml的组成元素 278

15.4.3 contents元素 279

15.4.4 依赖 282

15.4.5 使用phprelease进行灵活的自定义安装 283

15.4.6 发布包 284

15.4.7 创建自己的PEAR频道 284

15.5 小结 288

第16章 用phpDocumentor生成文档 289

16.1 为什么要使用文档 289

16.2 安装 290

16.3 生成文档 290

16.4 DocBlock注释 292

16.5 类的文档 293

16.6 文件的文档 294

16.7 属性的文档 295

16.8 方法的文档 296

16.9 在文档中创建链接 297

16.10 小结 300

第17章 使用CVS进行版本控制 301

17.1 为什么要使用版本控制 301

17.2 获得CVS 302

17.3 配置CVS代码库 303

17.3.1 创建代码库 303

17.3.2 配置客户端 304

17.3.3 在多台机器上运行CVS 304

17.4 开始项目 305

17.5 更新和提交 307

17.6 增加和删除文件及目录 309

17.6.1 添加文件 309

17.6.2 删除文件 310

17.6.3 添加目录 310

17.6.4 添加二进制文件 311

17.6.5 删除目录 311

17.7 标记和导出项目 312

17.7.1 标记项目 313

17.7.2 通过标签获取项目代码 313

17.7.3 导出项目 314

17.8 创建项目分支 314

17.9 小结 317

第18章 使用PHPUnit进行测试 318

18.1 功能测试与单元测试 318

18.2 手工测试 319

18.3 引入PHPUnit 321

18.3.1 创建测试用例 321

18.3.2 断言方法 322

18.3.3 测试异常 323

18.3.4 运行测试套件 324

18.3.5 约束 326

18.3.6 模拟与桩 328

18.3.7 失败是成功之母 331

18.4 警告 333

18.5 小结 335

第19章 用Phing实现项目的自动 构建 336

19.1 什么是Phing 336

19.2 获取和安装Phing 337

19.3 编写build文档 337

19.3.1 目标 339

19.3.2 属性 340

19.3.3 类型 345

19.3.4 任务 348

19.4 小结 352

第五部分 结论

第20章 对象、模式与实践 354

20.1 对象 354

20.1.1 选择 355

20.1.2 封装和委托 355

20.1.3 解耦 355

20.1.4 复用性 356

20.1.5 美学 356

20.2 模式 356

20.2.1 模式给我们带来了什么 357

20.2.2 模式和设计原则 357

20.3 实践 359

20.3.1 测试 359

20.3.2 文档 359

20.3.3 版本控制 360

20.3.4 自动构建 360

20.3.5 我们还遗漏了什么 360

20.4 小结 361

第六部分 附录

附录A 参考文献 364

附录B 简单的解析器 366

......(更多)

读书文摘

静态方法是以类作为作用域的函数。静态方法不能访问这个类中的普通属性,因为那些属性属于一个对象,但可以访问静态属性

......(更多)

猜你喜欢

点击查看