深入PHP

Matt Zandstra

文学

PHP 面向对象 Web开发 设计模式 PHP 编程 模式 web

2010-5

人民邮电出版社

目录
第一部分 介绍 第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
【展开】
内容简介
本书全面深入地剖析了面向对象的PHP编程与设计。首先介绍了PHP的OO特性,包括类声明、对象实例化、继承、方法与属性封装以及静态方法与属性、抽象类、接口、异常处理、对象克隆等高级主题。然后介绍了设计模式,阐述了模式的概念,展示了如何在PHP中实现几个关键的模式,用专门的章节介绍了企业模式和数据库模式。本书最后一部分围绕PHP应用程序开发,详细介绍了一批极为实用的辅助开发工具,讨论了具有普遍意义的最佳开发实践。 本书适合每位PHP程序员进阶参考,帮助他们掌握PHP面向对象设计和开发的精髓,跻身高端PHP程序员之列。
【展开】
下载说明

1、追日是作者栎年创作的原创作品,下载链接均为网友上传的的网盘链接!

2、相识电子书提供优质免费的txt、pdf等下载链接,所有电子书均为完整版!

下载链接
热门评论
  • IT程序狮的评论
    #PHP开发#【《深入理解PHP内核(Thinking In PHP Internals)》开源电子书】详见:网页链接 Thinking In PHP Internals是一个开源项目,分享有关PHP内部实现的方方面面,以便开发者们能更好的运用PHP.Phper们,不要错过。[最右]电子书下载地址:网页链接 @慕课网PHP学习小组
  • 心态改改的评论
    PHP-MVC_开发PHP-MVC框架_PHP开发MVC框架 - Lane Blog PHP-MVC框架的原理和实现方式是什么?在这里,我们用PHP开发一个自己的MVC框架。小巧精悍。深入理解市面上PHP主流的MVC框架原理。唯一入口文件该干什么,如何自动载入。本章代码基于PHP5.3+ 网页链接
  • 东湖畔新家的评论
    【深入剖析php执行原理(2):函数的编译 - driftcloudy】【摘要】本文只探讨纯粹的函数,并不包含方法。对于方法,会放到类、对象中一起研究。 想讲清楚在zend vm中,函数如何被正确的编译成op指令、如何发生参数传递、如何… 网页链接
  • 全栈开发者的评论
    【深入理解PHP对象注入 】php对象注入是一个非常常见的漏洞,这个类型的漏洞虽然有些难以利用,但仍旧非常危险,为了理解这个漏洞,请读者具备基础的php知识。全文=>网页链接
  • 开发者头条的评论
    [译] 深入理解 PHP 对象注入 网页链接 by 吴钧泽 分享自 @第一缕阳光 创建的《PHP linux技术分享》 网页链接( 想看更多?下载 @开发者头条 app:开发者头条App -... )
  • Byends的评论
    深入理解php的输出缓冲区(output buffer)  网页链接 如何理解 ob_flush() 与 flush()?
  • 仁风H的评论
    关于 Nginx 和 FPM 配置的文章很多,可以你知道为什么要这样做么,Nginx 与 FPM 的工作机制又是怎么样的,它们是如何协同工作的。《深入理解PHP之:Nginx 与 FPM 的工作机制》 告诉你答案(分享自 @知乎 专栏 · 作者:@仁风H)#php# 网页链接
  • 涌纯uh遇上向的评论
    [bofu蹦极] 说的真好,顶一个——评论@墨小颜_ 「Z-Blog(PHP),教给你怎么摸透它,深入它(一)了解$zbp->option」网页链接
  • 实验楼官方微博的评论
    #编程技术分享#四篇深入理解PHP的文章,一定要看[围观] :【深入PHP面向对象、模式与实践】网页链接【PHP 底层的运行机制与原理解析】网页链接【PHP 中 9 大缓存技术总结】网页链接【介绍PHP中的10个实用函数】网页链接
  • 拾稻子-辉的评论
    第一章 准备工作和背景知识 | TIPI: 深入理解PHP内核 网页链接