内容简介
第1章 面向对象思想的核心概念
1.1面向对象的“形”与“本”
1.1.1对象的“形”
1.1.2对象的“本”
1.1.3对象与数组
1.1.4对象与类
1.2魔术方法的应用
1.2.1— set和—get方法
1.2.2— call和—callStatic方法
1.2.3 — toString方法
1.3继承与多态
1.3.1类的组合与继承
1.3.2各种语言中的多态
1.4面向接口编程
1.4.1接口的作用
1.4.2对PHP接口的思考
1.5反射
1.5.1如何使用反射API
1.5.2反射有什么作用
1.6异常和错误处理
1.6.1如何使用异常处理机制
1.6.2怎样看PHP的异常
1.6.3 PHP中的错误级别
1.6.4 PHP中的错误处理机制
1.7本章小结
第2章 面向对象的设计原则
2.1面向对象设计的五大原则
2.1.1单一职责原则
2.1.2接口隔离原则
2.1.3开放-封闭原则
2.1.4替换原则
2.1.5依赖倒置原则
2.2一个面向对象留言本的实例
2.3面向对象的思考
2.4本章小结
第3章 正则表达式基础与应用
3.1认识正则表达式
3.1.1 PHP中的正则函数
3.1.2正则表达式的组成
3.1.3测试工具的使用
3.2正则表达式中的元字符
3.2.1什么是元字符
3.2.2起始和结束元字符
3.2.3点号
3.2.4量词
3.3正则表达式匹配规则
3.3.1字符组
3.3.2转义
3.3.3反义
3.3.4分支
3.3.5分组
3.3.6反向引用
3.3.7环视
3.3.8贪婪/懒惰匹配模式
3.4构造正则表达式
3.4.1正则表达式的逻辑关系
3.4.2运算符优先级
3.4.3正则表达式的常用模式
3.5正则在实际开发中的应用
3.5.1移动手机校验
3.5.2匹配E- mail地址
3.5.3转义在数据安全中的应用
3.5.4 URL重写与搜索引擎优化
3.5.5删除文件中的空行和注释
3.6正则表达式的效率与优化
3.7本章小结
第4章PHP网络技术及应用
4.1 HTTP协议详解
4.1.1 HTTP协议与SPDY协议
4.1.2 HTTP协议如何工作
4.1.3 HTTP应用:模拟灌水机器人
4.1.4垃圾信息防御措施
4.2抓包工具
4.2.1抓包工具分类
4.2.2 Fiddler功能与原理
4.2.3安装Fiddler
4.2.4 Fiddler基本界面
4.2.5使用Fiddler进行HTTP断点调试
4.3 Socket进程通信机制及应用
4.3.1进程通信相关概念
4.3.2 Socket演示:实现服务器端与客户端的交互
4.3.3 Socket函数原型
4.3.4 PHP中的Socket函数
4.3.5 Socket交互应用:使用Socket抓取数据
4.4 cURL工具及应用
4.4.1建立cURL请求的基本步骤
4.4.2检查cURL错误和获取返回信息
4.4.3在cURL中伪造头信息
4.4.4在cURL中用POST方法发送数据
4.4.5使用cURL上传文件
4.4.6 cURL批处理
4.4.7 cURL设置项
4.4.8网络应用:使用cURL抓取腾讯微博
4.5简单邮件传输协议SMTP
4.5.1 SMTP协议如何工作
4.5.2 SMTP协议常用命令
4.5.3 SMTP协议应用:使用Socket发送邮件
4.6 WebService的前世今生
4.6.1 WebService简介
4.6.2认识PHPRPC协议
4.6.3 Web服务的实现模式
4.6.4简单对象访问协议SOAP
4.6.5调试工具soapUI
4.7 Cookie详解
4.7.1 Cookie的基本概念及设置
4.7.2 PHP和JavaScript对Cookie的操作
4.7.3 Cookie存储机制及应用
4.7.4 Cookie跨域与P3 P协议
4.7.5本地存储localStorage
4.8 Session详解
4.8.1 Session的基本概念及设置
4.8.2 Session的工作原理
4.8.3 Session入库
4.8.4 Cookie与Session问答
4.9本章小结
第5章PHP与数据库基础
5.1什么是PDO
5.1.1 PDO预定义类
5.1.2如何使用PDO
5.1.3 PDO参数绑定与预编译
5.1.4 PDO事务处理
5.1.5 PDO的效率问题
5.2数据库应用优化
5.2.1基本语句优化10个原则
5.2.2索引与性能分析
5.2.3服务器和配置的优化
5.2.4 MySQL瓶颈及应对措施
5.3数据库设计
5.3.1范式与反范式
5.3.2数据库分区
5.3.3分表的应用
5.4 MySQL的高级应用
5.4.1 MySQL自增长序列
5.4.2 MySQL视图
5.4.3 MySQL存储过程和事件调度
5.4.4用MySQL模拟消息队列
5.4.5 SQL注入漏洞与防范
5.5本章小结
第6章PHP模板引擎的原理与实践
6.1代码分层的思想
6.2实现一个简单的模板引擎骨架
6.2.1搭建模板引擎基础类骨架
6.2.2编译类骨架
6.2.3测试模板引擎
6.3模板引擎的编译
6.3.1实现变量标签
6.3.2实现foreach标签
6.3.3实现if&else标签
6.3.4对PHP原生语法的支持
6.4完善模板引擎
6.4.1模板缓存机制的实现
6.4.2调试和缓存清理
6.4.3如何使用模板
6.5常用模板引擎
6.5.1 Discuz模板引擎
6.5.2 Smarty模板引擎
6.5.3 DedeCms模板引擎
6.5.4 Blitz模板引擎
6.5.5模板引擎的一些思考
6.6本章小结
第7章PHP扩展开发
7.1为什么要开发PHP扩展
7.2搭建PHP扩展框架
7.2.1 PHP源代码目录
7.2.2 ext_ skel工具
7.2.3 Windows平台环境配置
7.2.4 Linux平台环境配置
7.2.5 PHP的生命周期
7.3 PHP内核中的变量
7.3.1 PHP变量在内核中的存储方式
7.3.2 PHP内核变量访问宏
7.3.3引用计数器与写时复制
7.4 PHP内核中的HashTable分析
7.4.1 PHP内核HashTable的数据结构
7.4.2 HashTable的代码实现
7.5 Zend API详解与扩展编写
7.5.1什么是Zend引擎
7.5.2 Zend引擎内存管理
7.5.3 PHP扩展的架构
7.5.4接收用户传递的参数
7.5.5在PHP扩展中创建变量
7.5.6在PHP扩展中为变量赋值
7.5.7错误和输出API
7.5.8运行时信息函数
7.5.9调用用户自定义函数
7.5.10 PHP配置项
7.5.11创建常量的宏
7.6编写一个完整的扩展
7.6.1链表结构的实现
7.6.2创建PHP扩展框架
7.6.3编写代码
7.6.4编译安装扩展
7.6.5测试扩展
7.7本章小结
第8章 缓存详解
8.1认识缓存
8.1.1为什么使用缓存
8.1.2命中率
8.1.3缓存更新策略
8.1.4缓存最大数据量
8.2文件缓存
8.2.1文件缓存机制
8.2.2文件缓存开源产品Secache
8.3 Opcode缓存
8.3.1 eAccelerator下载及使用
8.3.2如何查看Opcode
8.4客户端缓存
8.4.1客户端缓存规则
8.4.2 HTTP协议中的缓存使用
8.4.3 HTTP缓存实例
8.4.4 HTML 5中的Application Cache
8.5 Web服务器缓存
8.5.1 Apache缓存
8.5.2 Nginx缓存
8.6本章小结
第9章Memcached使用与实践
9.1为什么要用Memcached
9.2 Memcached的安装及使用
9.2.1安装Memcached服务器
9.2.2安装Memcached客户端
9.2.3使用memcache扩展访问Memcached服务器
9.2.4使用Memcached加速Web应用
9.3深入了解Memcached
9.3.1 Memcached如何支持高并发
9.3.2使用Slab分配算法保存数据
9.3.3删除过期item
9.3.4使用LRU算法淘汰数据
9.3.5 Memcached多线程模型
9.4 Memcached分布式布置方案
9.4.1普通Hash分布
9.4.2一致性Hash分布
9.4.3一致性Hash分布算法实例
9.5本章小结
第10章Redis使用与实践
10.1 Redis的安装及使用
10.1.1 Redis安装步骤
10.1.2修改Redis配置文件
10.1.3运行Redis服务器
10.1.4 key相关命令
10.1.5 Redis支持的数据类型
10.1.6 Redis排序命令详解
10.2事务处理
10.2.1事务处理原理
10.2.2事务处理实现
10.3持久化
10.3.1内存快照
10.3.2日志追加
10.4主从同步
10.4.1 Redis主从同步原理
10.4.2 Slave端的工作流程
10.4.3 Master端的工作流程
10.5虚拟内存
10.5.1配置文件信息
10.5.2开启VM的后台操作
10.5.3 Redis Object和VM Pointer
10.5.4交换过程
10.5.5 阻塞式VM
10.5.6非阻塞式VM
10.6扩展库phpredis安装及使用
10.7 Redis应用实践
10.7.1使用消息队列发布微博
10.7.2 Redis替代文件存储Session
10.8深入了解Redis内核
10.8.1内存淘汰
10.8.2对象引用计数器
10.8.3自动关闭超时连接
10.8.4清除过期数据
10.9本章小结
第11章 高性能网站架构方案
11.1如何优化网站响应时间
11.1.1吞吐率
11.1.2压力测试
11.1.3持久连接
11.2 MySQL响应速度提高方案:HandlerSocket
11.2.1 HandlerSocket工作原理
11.2.2 HandlerSocket安装和配置
11.2.3 PHP-HandlerSocket性能测试
11.3 MySQL稳定性提高方案:主从复制
11.3.1主从复制工作原理
11.3.2主从复制配置
11.3.3连接主从服务器
11.4 Web应用加速方案:Varnish
11.4.1传统代理与反向代理
11.4.2 Varnish安装和配置
11.4.3 Varnish性能测试
11.4.4修改缓存规则
11.4.5监控Varnish运行状态
11.5异步计算方案:Gearman
11.5.1 Gearman工作原理
11.5.2安装Gearman和PHP扩展
11.5.3使用Gearman异步发送邮件
11.6本章小结
第12章 代码调试和测试
12.1调试PHP代码
12.1.1 PHP调试函数
12.1.2断点调试与变量跟踪工具Xdebug
12.2前端调试
12.2.1 Firebug调试API
12.2.2使用Firebug调试DOM结构
12.2.3使用Firebug调试JavaScript
12.2.4使用Fiddler调试远程服务器上的文件
12.3日志管理
12.3.1 PHP日志
12.3.2 Apache服务器日志
12.3.3 MySQL日志
12.4代码性能测试技术
12.4.1时间点测试
12.4.2文件查看工具WinCacheGrind
12.4.3性能测试注意事项
12.5单元测试
12.5.1单元测试框架PHPUnit的安装
12.5.2结合NetBeans使用PHPUnit进行单元测试
12.5.3 PHPUnit中的断言函数
12.5.4 PHPUnit常用方法
12.5.5 PHPUnit常用注解
12.6压力测试
12.6.1使用JMeter压力测试HTTP
12.6.2压力测试MySQL
12.6.3 JMeter+Badboy组合测试
12.7本章小结
第13章Hash算法与数据库实现
13.1 Hash函数
13.2 Hash算法
13.2.1直接取余法
13.2.2乘积取整法
13.2.3经典Hash算法Times33
13.3 Hash表
13.3.1 Hash表结构
13.3.2使用PHP实现Hash表
13.3.3 Hash表冲突
13.3.4拉链法解决冲突
13.4一个小型数据库的实现
13.4.1 pack函数的用法
13.4.2 unpack函数的用法
13.4.3索引文件和数据文件
13.4.4数据库接口方法
13.4.5源代码解析
13.4.6测试代码
13.5本章小结
第14章PHP编码规范
14.1文件格式
14.1.1文件标记
14.1.2文件和目录命名
14.1.3文件目录结构
14.2命名规范
14.2.1变量命名
14.2.2类及接口命名
14.2.3数据库命名
14.2.4习惯与约定
14.3注释规范
14.3.1程序注释
14.3.2文件注释
14.3.3类/接口注释
14.3.4方法和函数注释
14.3.5标注的使用
14.4代码风格
14.4.1缩进和空格
14.4.2语句断行
14.4.3更好的习惯
14.5本章小结