《深入PHP 面向对象、模式与实践》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)赞德斯彻著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2011
  • ISBN:9787115256249
  • 页数:450 页
图书介绍:本书首先介绍了抽象类、反射、接口和异常处理等面向对象特性,然后介绍了如何使用设计原则在项目中有效地部署对象和类,接着学习了设计模式及其目的和结构,最后介绍了保证项目成功的工具和实践,如单元测试、版本控制以及持续集成等。

第一部分介绍 2

第1章PHP:设计与管理 2

1.1问题 2

1.2PHP和其他语言 3

1.3关于本书 5

1.3.1对象 5

1.3.2模式 5

1.3.3实践 6

1.3.4第3版新增内容 7

1.4小结 7

第二部分对象 10

第2章PHP与对象 10

2.1PHP对象的偶然成功 10

2.1.1最初:PHP/FI 10

2.1.2语法糖:PHP 310

2.1.3一场静悄悄的革命:PHP 411

2.1.4拥抱改变:PHP 512

2.2走向未来:PHP 613

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.3publicprivateprotected管理类的访问 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.7Final类和方法 56

4.8使用拦截器 57

4.9析构方法 61

4.10使用clone复制对象 62

4.11定义对象的字符串值 64

4.12回调、匿名函数和闭包 65

4.13小结 69

第5章对象工具 70

5.1PHP和包 70

5.1.1PHP包和命名空间 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内聚 1

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.8UML 106

6.8.1类图 107

6.8.2时序图 111

6.9小结 112

第三部分模式 117

第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.5PHP与设计模式 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

第四部分实践 294

第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.1packagexml 311

15.5.2packagexml的组成 312

15.5.3contents元素 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.4DocBlock注释 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.3Selenium 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

第五部分结论 396

第20章持续集成 396

20.1什么是持续集成 396

20.2CruiseControl和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

第六部分附录 428

附录A参考文献 428

附录B简单的解析器 431