首页>参考读物>计算机科学与技术>软件与程序设计

PHP核心技术与最佳实践(第2版)
作者 : 列旭松 陈文 著
丛书名 : Web开发技术丛书
出版日期 : 2018-09-13
ISBN : 978-7-111-60841-7
定价 : 129.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 594
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

内容简介
PHP领域公认的标杆之作,被誉为“PHP开发工程师能力进阶的必读书”,致力于为希望成为中高级PHP程序员的读者提供全面、高效的指导。
本书第1版出版于2012年,累计印刷超过10次,6年后全新升级,一方面根据PHP技术最新的发展删除和更新了一些过时的内容,另一方面对原来的部分内容作了深度优化。
全书共13章,逻辑上分为5个部分:
第一部分(1~2章):从不同的角度阐述了面向对象软件设计思想的核心概念、技术和原则,分析了面向对象的特性、设计模式的理念,指出了如何设计低耦合、高可扩展性的软件,等等。
第二部分(3~6章):详细讲解了PHP网络编程的原理、方法、技巧和一些重要的操作,PDO、数据库应用优化,数据库设计和MySQL的高级应用,PHP框架的实现原理。
第三部分(第7章):围绕PHP扩展开发进行了细致而深入的探讨,解析了PHP的底层实现和Zend虚拟机API,并用PHP扩展开发的实例带领读者走进PHP的底层世界,旨在让读者对PHP性能优化、底层原理进行深入的理解。
第四部分(8~10章):重点讨论了缓存的设计、Memcached的原理与实践、NoSQL数据库Redis源码分析与应用实践等内容。
第五部分(12~13章)详细讲解了PHP代码的调试和测试、Hash算法和数据库的实现。

图书特色

畅销书全新升级,PHP领域公认的标杆之作,为PHP程序员进阶提供全面、高效指导
系统归纳和深刻解读PHP开发中的编程思想、底层原理、核心技术、开发技巧
PHP Core Technology and Best Practice, Second Edition
PHP核心技术
与最佳实践
列旭松 陈文 著
第2版

图书前言

本书的第1版写作于2011年,并在2012年末出版,至今已经过去六七年了。本书第1版受到了许多读者的热爱,并得到了很多有建设性的意见。
PHP到底要怎么学?学什么?一个中高级PHP程序员应该是什么样的?我想这也是很多PHP新手和工作了一两年的PHP开发者的疑惑。本书所要解决的就是这一系列问题。很欣慰收到了许多读者的来信,反馈本书第1版帮助他们在PHP的道路上越走越远,读者的来信让我感受到了鼓励,也感受到了压力。
随着PHP社区的发展,以及整个互联网开发领域层出不穷的新技术和新理论,第1版的一些内容已经跟不上技术的发展,我们深感有必要在第1版的基础上做出大的更新,以满足读者的需求。
我们先来看一看第1版写作至今,PHP社区以及互联网开发领域技术的一些发展。
1)PHP版本从主流的PHP5.3发展到PHP7,性能有了一倍以上的提升,无论是语法还是PHP内核,都有了许多新变化。
2)面向对象开发理念已深入人心,PHP框架存在的必要性也已达成共识。模板引擎和PEAR基本退出PHP框架开发领域,PHP框架开始使用Composer管理依赖和构建,Composer已经发展成为一种必备技能。
3)数据库领域,事务的重要性更多被提及和承认。随着业务规模的增长,单机已经不能满足业务需求,分布式事务、数据库中间件以及全文搜索已经成了数据库里常用的三个工具。同时,NoSQL也从一个小众技术发展为主流技术。
4)分布式的概念已经尽人皆知,服务治理和微服务的概念横空出世并在PHP领域越来越受到重视,Docker等容器概念也已成为寻常技术。
基于上述变化,本书的第2版应运而生,引入了更多内容,并去除了已经过时和淘汰的篇章。
在我看来,一本技术书籍的价值在于其对知识的提炼和其与众不同的地方。举例来说,到一个书店去看书,你最想用笔抄下来或用手机拍下来的那几页,就是对你帮助最大的部分,也是你认为这本书的价值所在。正是基于这个想法,我们思考了第2版该写什么,怎么写,哪些地方会对读者有帮助。我们试图从不同的角度带领读者来看PHP,给这本书注入一些不一样的东西。我希望这是一件有意义的事。
新技术和新理念爆炸式增长,一本书不能说尽天下事,但是我还是希望本书能够帮到你。
本书适合的对象
PHP爱好者;
掌握了PHP语法基础,想要进阶的初级程序员;
对PHP框架和扩展开发感兴趣的读者;
对NoSQL应用和实现原理感兴趣,对高并发感兴趣的读者;
对PHP网络应用感兴趣,想知道HTTP协议、Socket等更多细节的读者;
想要在大型互联网公司的PHP面试中获得成功的读者;
开设相关课程的大专院校的学生;
公司内部培训的学员。
如何阅读本书
本书一共有13章。每个章节都可以单独阅读,但部分知识点存在一定的衔接,建议按先后顺序阅读。
第1章主要讲解了面向对象开发的思想,重点讲述面向对象模型的建立,以及面向对象的一些基础概念。本章通过大量的对比和举例,尤其是与Java的对比,力图从不同的角度来讲解PHP的面向对象特性,让读者加深理解,也让PHP程序员看到不同的面向对象。求同存异是本章的核心思想。
第2章用简练的语言讲解面向对象设计的五大原则,这五大原则也是理解设计模式的基础所在,目的在于帮助读者站在一个更高的角度来思考面向对象的问题。
第3章着重介绍HTTP协议、Socket开发和TCP/IP抓包工具的使用,WebService、Cookie和Session的使用等。结合实战,向读者阐述网络开发的核心和重点,特别是对HTTP协议的理解。HTTP协议是Web开发的基石,也是各种面试和开发中必然会遇到的知识点。而Socket则是应用交互的桥梁,保证了应用的可扩展性。
第4章着重介绍RPC的概念,包括其定义和组成元素,然后以ZooKeeper和etcd为例,介绍服务注册和发现的概念。读者在学习了本章内容后,就能对微服务中最关键的服务治理有更清晰的了解,进而理解微服务中服务治理组件的原理。
第5章没有介绍CRUD,而是主要介绍PDO、MySQL优化、事务、存储过程和事件调度机制以及MySQL安全防范。随着PHP社区的发展以及PHP7带来的性能提升,PHP在互联网大型应用中起到了举足轻重的作用。在这些大型应用中,事务是个很关键的东西,用好事务,才能保证数据的一致性和准确性。同时,针对大型应用中涉及的性能优化这一块,本章讲解了分表分库、MySQL中间件以及全文搜索的知识。读者在学习了本章后,对MySQL的性能优化和扩展会有一个更清晰的把握和理解。
第6章以MVC为理论依据,从零开始写一个简单的PHP框架,讲解控制器层、数据模型层、视图层的原理和实现,并且引入了自动加载、异常管理、拦截器的概念。随着PSR规范的完善以及Composer构建工具的流行,使用Composer来管理依赖已经成为一种很流行和通用的做法,因此我们在本章中介绍了Composer的概念,并用其改造了我们的框架,最后介绍了控制反转与依赖注入的概念。
第7章是本书的核心所在,介绍PHP扩展开发的几个重要知识点,如扩展框架搭建、PHP生命周期和PHP变量在内核中的实现方式、Zend引擎、内存管理等。最后讲解唯一ID生成扩展实例,帮助读者巩固前面学到的知识。通过学习本章,读者可以深入到PHP底层,做到知其然也知其所以然。
第8章主要介绍缓存的基本原理和三个衡量指标,通过几个实例讲解,加深读者对缓存的理解。学习本章后,读者应该能设计出一个比较合理的缓存方案。除了缓存的基本概念外,本章还讲述了Opcache服务端缓存和客户端缓存的应用。
第9章不是对Memcached的泛泛而谈,而是深入Memcached的实现和内部结构,让读者掌握Memcached的高级应用,对架构复杂环境的缓存层有清晰的认识。
第10章重点介绍Redis的深入应用,如事务处理、主从同步等,和第9章类似,同样深入探讨了Redis的实现内幕。最后,本章着重讲解了Redis集群的原理和落地实现,合理利用Redis可以为我们解决大流量高并发的应用。
第11章探讨了高性能架构的基本出发点,重点以HandlerSocket的使用、MySQL主从复制、反向代理缓存软件Varnish和任务分发框架Gearman为例,讲述了几种高性能架构中会使用的技术。
第12章科学的调试方法有助于快速找出潜在的BUG和理解复杂应用的流程,提高开发效率。单元测试是代码质量的保障。最后,介绍了使用JMeter进行压力测试的方法。
第13章通过介绍Hash算法的基本原理,然后用此算法实现一个简单的基于Hash的数据库,让读者意识到算法的重要性和可操作性。
本书第1、2、3、5、6、8、12章由陈文撰写,第7、9、10、11、13章由列旭松撰写,第4章由两人共同参与完成。
勘误和支持
由于水平和开发经验有限,且计算机技术更新较快,在撰写的过程中难免有不足,有些章节的内容可能在未来的某个时候不再适用,还望读者理解和体谅,并恳请读者批评指正。如果你有好的建议,或者对书中部分内容有疑惑,可与我们联系,我们将尽量为读者提供满意的解答。
联系方式:
陈文:waitfox@qq.com
列旭松:liexusong@qq.com
期待能够得到你们的真挚反馈。
感谢
首先要感谢PHP之父——Rasmus Lerdorf,是他创建了这个简单、轻松、有趣、快速而高效的语言。
其次要感谢PHP社区每一位充满活力的朋友,正是在和你们的交流中,使我学到了更多的东西,本书有不少内容来自于社区的智慧。
这是我和列旭松合著的第一本书,在这里尤其要感谢机械工业出版社的大力支持,特别是杨福川老师和张锡鹏老师,在一年多的时间里,是你们耐心地指导和认真编审才有了这本书的诞生。
还要感谢我的合作人列旭松的大力支持,正是他完成了本书最核心的章节,在后期与出版社和编辑沟通,并在稿件修改上付出了很多心血才保证书稿得以按时完成。
最后,还要感谢我的家人和朋友的支持。

陈文

上架指导

程序设计/Web开发

封底文字

本书第1版出版于2012年,至今仍热销并不断收到读者反馈,但是这6年来,PHP技术和互联网开发领域有很多新变化:
(1)PHP从PHP5.3版本到PHP7版本,性能大幅提升,语法和内容都有新变化。
(2)模板引擎和Pear逐渐被取代,PHP框架开始使用Composer管理依赖和构建,Composer已经成为一种必备技能。
(3)分布式事务、数据库中间件以及全文搜索已经成为数据库里最常用的三个工具,NoSQL从一个小众技术发展为大众流行技术。
(4)服务治理和微服务已经流行并在PHP领域越来越受重视。
……
基于上述变化,无论是读者还是作者,都有了迫切更新本书的需求。第2版在第1版的基础上,做了如下更新:
(1)新增“命名空间”和“自动加载”等重要知识点。
(2)新增Laravel框架和composer依赖管理等流行内容。
(3)对“异常和错误处理”的内容进行了增强。
(4)删除“正则表达式”“PHP模板引擎”等在PHP开发中不再推荐使用或使用减少的知识点。
(5)新增HTTP2和TCP/IP相关内容,以满足高性能架构的需求。
(6)新增集群和分布式环境下的会话处理相关内容。
(7)新增“RPC和微服务”等热点技术内容。
(8)新增了MySQL全文检索、ElasticSearch、数据库中间件等面向更复杂业务的数据库技术。
(9)新增了“PHP框架实现原理”的内容,Composer框架已经成为主流开发模式。
(10)对缓存相关内容做了较大改动,新增了近几年较新颖和高效的缓存算法。
(11)结合PHP的最新版本,对测试与调试的内容做了较大修改。
(12)对扩展相关的内容进行了增强。

作者简介

列旭松 陈文 著:放排好的目录和宣传语

图书目录

PHP核心技术与最佳实践第二版目录修订
删除线表示删除章节

第1章 面向对象思想的核心概念
1.1 面向对象的“形”与“本” 3
1.1.1 对象的“形” 3
1.1.2 对象的“本” 5
1.1.3 对象与数组 7
1.1.4 对象与类 7
1.2 魔术方法的应用 9
1.2.1 __set和__get方法 9
1.2.2 __call和__callStatic方法 11
1.2.3 __toString方法 13
1.3 继承与多态 16
1.3.1 类的组合与继承 17
1.3.2各种语言中的多态 22
1.4 面向接口编程 25
1.4.1 接口的作用 26
1.4.2 对PHP接口的思考 28
1.5 反射 31
1.5.1 如何使用反射API 31
1.5.2 反射有什么作用 34
1.6 异常和错误处理 35
1.6.1 如何使用异常处理机制 35
1.6.2 怎样看PHP的异常 41
1.6.3 PHP中的错误级别 42
1.6.4 PHP中的错误处理机制 44
1.7 本章小结 47

第2章 面向对象的设计原则

2.1 面向对象设计的五大原则 47
2.1.1单一职责原则 48
2.1.2 接口隔离原则 59
2.1.3开放-封闭原则 62
2.1.4 替换原则 66
2.1.5依赖倒置原则 69
2.2 一个面向对象留言本的实例 72
2.3 面向对象的思考 78
2.4本章小结 79

第3章 正则表达式基础与应用

第4章 PHP网络技术及应用
4.1 HTTP协议详解 129
4.1.1 HTTP协议与SPDY协议 129
4.1.2 HTTP协议如何工作 130
4.1.3 HTTP应用:模拟灌水机器人 135
4.1.4 垃圾信息防御措施 143
4.2 抓包工具 146
4.2.1 抓包工具分类 147
4.2.2 Fiddler功能与原理 147
4.2.3 安装Fiddler 148
4.2.4 Fiddler基本界面 149
4.2.5 使用Fiddler进行HTTP断点调试 152
4.3 Socket进程通信机制及应用 155
4.3.1 进程通信相关概念 156
4.3.2 Socket演示:实现服务器端与客户端的交互 157
4.3.3 Socket函数原型 160
4.3.4 PHP中的Socket函数 161
4.3.5 Socket交互应用:使用Socket抓取数据 165
4.3.6 PHP实现的socket服务
4.3.7 socket 通讯问题与解决方案
4.4 cURL工具及应用 166
4.4.1 建立cURL请求的基本步骤 167
4.4.2 检查cURL错误和获取返回信息 168
4.4.3 在cURL中伪造头信息 170
4.4.4 在cURL中用POST方法发送数据 173
4.4.5 使用cURL上传文件 174
4.4.6 cURL批处理 176
4.4.7 cURL设置项 177
4.4.8 网络应用:使用cURL抓取腾讯微博 179
4.5 简单邮件传输协议SMTP 188
4.5.1 SMTP协议如何工作 188
4.5.2 SMTP协议常用命令 190
4.5.3 SMTP协议应用:使用Socket发送邮件 190
4.6 WebService的前世今生 196
4.6.1 WebService 简介 197
4.6.2 认识PHPRPC协议 199
4.6.3 Web服务的实现模式 207
4.6.4 简单对象访问协议SOAP 208
4.6.5 调试工具soapUI 211
4.7* 认识RPC与微服务
1.RPC的基础
2.RPC的实现原理
3.微服务的概念
4.7 Cookie详解 213
4.7.1 Cookie的基本概念及设置 213
4.7.2 PHP和JavaScript对Cookie的操作 215
4.7.3 Cookie存储机制及应用 218
4.7.4 Cookie跨域与P3P协议 220
4.7.5 本地存储localStorage 222
4.8 Session详解 225
4.8.1 Session的基本概念及设置 225
4.8.2 Session的工作原理 226
4.8.3 Session入库 228
4.8.4 Cookie与Session问答 234
4.9 本章小结 236

第5章PHP与数据库基础

5.1 什么是PDO 239
5.1.1 PDO预定义类 240
5.1.2 如何使用PDO 241
5.1.3 PDO参数绑定与预编译 242
5.1.4 PDO事务处理 244
5.1.5 PDO的效率问题 245
5.2 数据库应用优化 245
5.2.1 基本语句优化10个原则 246
5.2.2 索引与性能分析 247
5.2.3 服务器和配置的优化 250
5.2.4 MySQL瓶颈及应对措施 253
5.3 数据库设计 254
5.3.1 范式与反范式 254
5.3.2 数据库分区 255
5.3.3 分表的应用 257
5.4 MySQL高级应用 259
5.4.1 MySQL自增长序列 260
5.4.2 MySQL视图 262
5.4.3 MySQL存储过程和事件调度 265
5.4.4 用MySQL模拟消息队列 267
5.4.5 SQL注入漏洞与防范 271
5.4.6 Mysql事务高级处理
5.5 本章小结 276

第6章:PHP模板引擎的原理与实践

第7章PHP扩展开发
7.1 为什么要开发PHP扩展 323
7.2 搭建PHP扩展框架 324
7.2.1 PHP源代码目录 324
7.2.2 ext_skel工具 325
7.2.3 Windows平台环境配置 325
7.2.4 Linux平台环境配置 328
7.2.5 PHP的生命周期 330
7.3 PHP内核中的变量 333
7.3.1 PHP变量在内核中的存储方式 333
7.3.2 PHP内核变量访问宏 336
7.3.3 引用计数器与写时复制 338
7.4 PHP内核中的HashTable分析 341
7.4.1 PHP内核HashTable的数据结构 341
7.4.2 HashTable的代码实现 347
7.5 Zend API详解与扩展编写 353
7.5.1 什么是Zend引擎 354
7.5.2 Zend引擎内存管理 354
7.5.3 PHP扩展的架构 355
7.5.4 接收用户传递的参数 366
7.5.5 在PHP扩展中创建变量 375
7.5.6 在PHP扩展中为变量赋值 380
7.5.7 错误和输出API 395
7.5.8 运行时信息函数 398
7.5.9 调用用户自定义函数 399
7.5.10 PHP配置项 401
7.5.11 创建常量的宏 406
7.5.12 对象创建与操作
7.6 编写一个完整的扩展 407
7.6.1 链表结构的实现 407
7.6.2 创建PHP扩展框架 416
7.6.3 编写代码 416
7.6.4 编译安装扩展 428
7.6.5 测试扩展 428
7.7 编写一个ID生成器的扩展
7.7.1 唯一ID生成原理
7.7.2 自旋锁原理
7.7.3 实现唯一ID生成器扩展
7.8 本章小结 429

第8章 缓存详解
8.1 认识缓存 431
8.1.1 为什么使用缓存 431
8.1.2 命中率 432
8.1.3 缓存更新策略 433
8.1.4 缓存最大数据量 434
8.2 文件缓存 435
8.2.1 文件缓存机制 435
8.2.2 文件缓存开源产品Secache 437
8.3 Opcode缓存 439
8.3.1 eAccelerator下载及使用 440
改为opcache的介绍
8.3.2 如何查看Opcode 441
8.4 客户端缓存 443
8.4.1 客户端缓存规则 444
8.4.2 HTTP协议中的缓存使用 444
8.4.3 HTTP缓存实例 448
8.4.4 HTML 5中的Application Cache 450
8.5 Web服务器缓存 451
8.5.1 Apache缓存 452
8.5.2 Nginx缓存 453
8.6 本章小结 454

第9章 Memcached使用与实践(暂不做大的调整)

第10章 Redis使用与实践
10.1 Redis的安装及使用 486
10.1.1 Redis安装步骤 486
10.1.2 修改Redis配置文件 487
10.1.3 运行Redis服务器 489
10.1.4 key相关命令 489
10.1.5 Redis支持的数据类型 491
10.1.6 Redis排序命令详解 500
10.2 事务处理 503
10.2.1 事务处理原理 503
10.2.2 事务处理实现 504
10.3 持久化 507
10.3.1 内存快照 507
10.3.2 日志追加 508
10.4 主从同步 509
10.4.1 Redis主从同步原理 509
10.4.2 Slave端的工作流程 510
10.4.3 Master端的工作流程 516
10.5 虚拟内存 522
10.5.1 配置文件信息 523
10.5.2 开启VM的后台操作 524
10.5.3 Redis Object和VM Pointer 525
10.5.4 交换过程 527
10.5.5 阻塞式VM 531
10.5.6 非阻塞式VM 534
10.5 Redis集群
10.5.1 Redis集群工作原理
10.5.2 Redis集群配置
10.5.3 PHP连接Redis集群
10.6 扩展库phpredis安装及使用 539
10.7 Redis应用实践 540
10.7.1 使用消息队列发布微博 540
10.7.2 Redis替代文件存储Session 542
10.8 深入了解Redis内核 546
10.8.1 内存淘汰 546
10.8.2 对象引用计数器 550
10.8.3 自动关闭超时连接 552
10.8.4 清除过期数据 554
10.9 本章小结 557

第11章 高性能网站架构方案
11.1 如何优化网站响应时间 559
11.1.1 吞吐率 560
11.1.2 压力测试 561
11.1.3 持久连接 565
11.2 MySQL响应速度提高方案:HandlerSocket 570
11.2.1 HandlerSocket工作原理 570
11.2.2 HandlerSocket安装和配置 571
11.2.3 PHP-HandlerSocket性能测试 573
11.2 使用Nginx/Haproxy实现负载均衡
11.2.1 七层负载均衡架构原理
11.2.2 Nginx实现负载均衡
11.2.3 Haproxy实现负载均衡
11.3 MySQL稳定性提高方案:主从复制 574
11.3.1 主从复制工作原理 574
11.3.2 主从复制配置 575
11.3.3 连接主从服务器 578
11.4 Web应用加速方案:Varnish 580
11.4.1 传统代理与反向代理 581
11.4.2 Varnish安装和配置 582
11.4.3 Varnish性能测试 583
11.4.4 修改缓存规则 586
11.4.5 监控Varnish运行状态 589
11.5 异步计算方案:Gearman 591
11.5.1 Gearman工作原理 591
11.5.2 安装Gearman和PHP扩展 592
11.5.3 使用Gearman异步发送邮件 593
11.6 本章小结 595

第12章代码调试和测试
12.1 调试PHP代码 596
12.1.1 PHP调试函数 596
12.1.2 断点调试与变量跟踪工具Xdebug 600
12.2 前端调试 603
12.2.1 Firebug调试API 604
12.2.2 使用Firebug调试DOM结构 605
12.2.3 使用Firebug调试JavaScript 607
12.2.4 使用Fiddler调试远程服务器上的文件 609
12.3 日志管理 610
12.3.1 PHP日志 611
12.3.2 Apache服务器日志 611
Nginx 服务器日志
12.3.3 MySQL日志 613
12.4 代码性能测试技术 616
12.4.1 时间点测试 616
12.4.2 文件查看工具WinCacheGrind 617
12.4.3 性能测试注意事项 619
12.5 单元测试 620
12.5.1 单元测试框架PHPUnit的安装 620
12.5.2 结合NetBeans使用PHPUnit单元测试 621
12.5.3 PHPUnit中的断言函数 624
12.5.4 PHPUnit常用方法 627
12.5.5 PHPUnit常用注解 627
12.6 压力测试 629
12.6.1 使用JMeter压力测试HTTP 629
12.6.2 压力测试MySQL 633
12.6.3 JMeter+Badboy组合测试 636
12.7 本章小结 638

第13章:Hash算法与数据库实现 (暂不做大的调整)

第14章 PHP编码规范

第14章* PSR规范介绍

增改内容

修订原则:
跟上PHP 7的新特性
跟上最近几年对OO设计模式的态度转变
跟上最近几年的技术发展趋势,如分布式的思想
代码规范,调整配图,修改第一版读者提出的bug
使文章内容更实用更深入,避免留下浅尝辄止的印象
第一章:面向对象思想的核心概念

本章做一些代码格式的调整,基本保持 85% 的内容不变。

增改内容如下:
1.1 面向对象的“形”与“本”(适时介绍ArrayObject,仅少量文字修改)
1.5 反射 (补充对反射的一些定义和描述,涉及少量文字改动)
1.6 异常和错误处理 (此节改动会比较大,PHP7对异常机制做了较大的改动)

第二章:面向对象的设计原则
本章内容过于枯燥,修改主要涉及描述上的调整,内容基本保持90%不变

增改内容如下:
2.1 面向对象设计的五大原则(修改部分描述,增加一些图片)
2.2 一个面向对象留言本的实例(规范代码)

第三章:正则表达式基础和应用

本章拟删除
第四章:PHP网络技术及应用
本章拟做大改动,预计改动内容达到 50%。

增改内容如下:
4.1.1 HTTP协议与SPDY协议(由于SPDY协议已经升级为HTTP2,改为介绍HTTP2协议)
4.1.3 HTTP应用:模拟灌水机器人(更新代码和配图)
4.1.4 垃圾信息防御措施(补充更多实用原理,令牌桶,漏桶算法等)
4.2 抓包工具 (更新描述和配图)
4.3 Socket进程通信机制及应用(更新内容)
增加对PHP做socket服务的内容的介绍
增加对swoole的介绍
4.4.8 网络应用:使用cURL抓取腾讯微博一节删除
4.6WebService的前世今生 (虽然WS现在不流行了,但是依然会有许多老的例子,并且其思想也是很好的。增加PHP调用Java的webservice的实例,详细讲述怎么阅读WSDL,怎样跨语言调用WS)
删除认识PHPRPC协议
增加RPC介绍和微服务
4.8 session (增加集群环境下的session处理,以及无session/无状态编程的思路)

第五章:PHP与数据库基础

本章也会做较大调整,拟保留50%内容,调整50%内容。

5.1 PDO (增加更多完整代码,丰富内容。预编译一节增加抓包截图,加深印象)
5.2 数据库优化 修改过时的优化手段(如query cache,增加更多的配置方面的介绍,修改对数据库引擎中过时或错误的描述)
5.3 数据库设计 (强调分区的优缺点,介绍分表的中间件介绍以及大数据情况下的分表方案,增加实用性)
5.4
删除MySQL自增长序列一小节
增加对MySQL事务的介绍,比如事务嵌套,事务传播方式等

第六章:PHP模板引擎的原理与实践

本章拟删除。

第六章*:PHP框架的实现原理(新增的一章)
本章为新增章节,填补国内PHP书籍对框架实现的介绍。
主要内容如下:
MVC的原理;
路由的实现;
DB层的实现;
模板引擎的实现(第一版第三章和第六章的内容仅保留小部分在本节介绍,同时新增编译原理和解析器的介绍,但不做过多深入)
异常的处理;
设计模式和PHP7新特性的应用
I18N,可扩展性等的内容。

第七章:PHP扩展开发
增加PHP对象相关的Zend API与开发。
增加一节开发一个唯一ID生成器扩展。
第八章:缓存详解
本章内容拟作少量调整
8.3
删除ecc介绍
增加opcache介绍
8.5 Web服务器缓存,调整Nginx部分的介绍,增加篇幅,修改过期内容。
第十章:Redis使用与实践
去掉关于VM相关的知识点
增加Redis集群的使用
第十一章:高性能网站架构方案
去掉11.2节的handlersocket的介绍
增加使用Nginx/Haproxy做7层负载均衡架构。
第十二章:测试和调试技术
本章拟作部分调整。

12.2 前端调试(firebug由于已经不流行了,改为介绍Chrome自带的调试功能)
删除12.3.2 Apache服务器日志
增加介绍Nginx日志
增加灰度,冒烟,自动测试等内容。

第十四章*:PSR编码规范
介绍PSR规范。

教学资源推荐
作者: [美] 克里斯多夫 W. 弗雷泽(Christopher W. Fraser)戴维 R. 汉森(David R. Hanson) 著
作者: [美]约翰·R. 莱文(John R. Levine) 著
作者: 宋晓宇
作者: 王珊珊 臧洌 张志航
参考读物推荐
作者: 麻地河 赵 恒
作者: Jeff Johnson
作者: [美]易格恩?阿格佛温(Eugene Agafonov)著