展开全部

主编推荐语

深刻解读PHP开发中的编程思想、底层原理、核心技术、开发技巧、编码规范和最佳实践。

内容简介

本书是一本致力于为希望成为中高级PHP程序员的读者提供高效而有针对性的指导的经典著作。

全书分为5个部分:第一部分(1~2章)从不同的角度阐述了面向对象软件设计思想的核心概念、技术和原则,分析了面向对象的特性、设计模式的理念,指出了如何设计低耦合、高可扩展性的软件,等等;第二部分(3~6章)详细讲解了PHP中正则表达式的规范和使用技巧,PHP网络编程的原理、方法、技巧和一些重要的操作,PDO、数据库应用优化,数据库设计和MySQL的高级应用,PHP扩展引擎的原理与实践;第三部分(第7章)拨云见日,围绕PHP扩展开发进行了细致而深入的探讨,解析了PHP的底层实现和Zend虚拟机API,并用PHP扩展开发的实例带领读者走进PHP的底层世界,旨在让读者对PHP性能优化、底层原理进行深入的理解。第四部分(8~11章)重点讨论了缓存的设计、Memcached的原理与实践、NoSQL数据库Redis源码分析与应用实践、高性能PHP网站的架构和设计等内容;第五部分(12~14章)详细讲解了PHP代码的调试和测试、Hash算法和数据库的实现,以及PHP的编码规范,旨在帮助读者提高开发效率,养成良好编程习惯。

目录

  • 版权信息
  • 前言
  • 为什么要写这本书
  • 本书适合的对象
  • 如何阅读本书
  • 勘误和支持
  • 感谢
  • 第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跨域与P3P协议
  • 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 本章小结
展开全部

评分及书评

评分不足
1个评分
  • 用户头像
    给这本书评了
    5.0

    我一个十几年的 PHPer 看得津津有味。

      转发
      评论

    出版方

    机械工业出版社有限公司

    机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。