PHP objects, patterns, and practice

副标题:无

作   者:(美)Matt Zandstra著;陈浩[等]译

分类号:

ISBN:9787115256249

微信扫一扫,移动浏览光盘

简介

赞德斯编著的《深入PHP:面向对象、模式与实践(第3版)》全面深入地剖析了面向对象的PHP编程与设计。书中首先介绍了PHP的对象特性(包括抽象类、反射、接口和错误处理等)及可帮助开发人员了解类、对象和方法的对象工具,然后介绍了设计模式。阐述了模式的概念,展示了如何在PHP中实现一些关键的模式。并用专门的章节介绍了企业模式和数据库模式。最后,本书围绕PHP应用程序开发。详细介绍了一批极为实用的辅助开发工具。讨论了具有普遍意义的最佳开发实践。另外,这一版中还新增了闭包、命名空间、持续集成等内容。 本书适合每位PHP开发人员进阶参考。可帮助他们掌握PHP面向对象设计和开发的精髓,并最终跻身高端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 第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
   第四部分 实践
  第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.1 package.xml 311
   15.5.2 package.xml的组成 312
   15.5.3 contents元素 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.4 DocBlock注释 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.3 Selenium 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
   第五部分 结论
  第20章 持续集成 396
   20.1 什么是持续集成 396
   20.2 CruiseControl和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
   第六部分 附录
  附录A 参考文献 428
  附录B 简单的解析器 431
  

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

PHP objects, patterns, and practice
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon