这是一本致力于为希望成为中高级PHP程序员的读者提供高效而有针对性指导的经典著作。本书系统归纳和深刻解读了PHP开发中的编程思想、底层原理、核心技术、开发技巧、编码规范和最佳实践。
全书分为5个部分:第一部分(1~2章)从不同的角度阐述了面向对象软件设计思想的核心概念、技术和原则,分析了面向对象的特性、设计模式的理念,指出了如何设计低耦合、高可扩展性的软件,等等;第二部分(3~6章)详细讲解了PHP中正则表达式的规范和使用技巧,PHP网络编程的原理、方法、技巧和一些重要的操作,PDO、数据库应用优化,数据库设计和MySQL的高级应用,PHP扩展引擎的原理与实践;第三部分(第7章)拨云见日,围绕PHP扩展开发进行了细致而深入的探讨,解析了PHP的底层实现和Zend虚拟机APl,并用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.1set和get方法
1.2.2call和callStatic方法
1.2.3toString方法
1.3继承与多态
1.3.1类的组合与继承
1.3.2各种语言中的多态
1.4面向接口编程前言
第1章面向对象思想的核心概念
1.1面向对象的“形”与“本”
1.1.1对象的“形”
1.1.2对象的“本”
1.1.3对象与数组
1.1.4对象与类
1.2魔术方法的应用
1.2.1set和get方法
1.2.2call和callStatic方法
1.2.3toString方法
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.3PHP中的错误级别
1.6.4PHP中的错误处理机制
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.1PHP中的正则函数
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.4URL重写与搜索引擎优化
3.5.5删除文件中的空行和注释
3.6正则表达式的效率与优化
3.7本章小结
第4章PHP网络技术及应用
4.1HTTP协议详解
4.1.1HTTP协议与SPDY协议
4.1.2HTTP协议如何工作
4.1.3HTTP应用:模拟灌水机器人
4.1.4垃圾信息防御措施
4.2抓包工具
4.2.1抓包工具分类
4.2.2Fiddler功能与原理
4.2.3安装Fiddler
4.2.4Fiddler基本界面
4.2.5使用Fiddler进行HTTP断点调试
4.3Socket进程通信机制及应用
4.3.1进程通信相关概念
4.3.2Socket演示:实现服务器端与客户端的交互
4.3.3Socket函数原型
4.3.4PHP中的Socket函数
4.3.5Socket交互应用:使用Socket抓取数据
4.4cURL工具及应用
4.4.1建立cURL请求的基本步骤
4.4.2检查cURL错误和获取返回信息
4.4.3在cURL中伪造头信息
4.4.4在cURL中用POST方法发送数据
4.4.5使用cURL上传文件
4.4.6cURL批处理
4.4.7cURL设置项
4.4.8网络应用:使用cURL抓取腾讯微博
4.5简单邮件传输协议SMTP
4.5.1SMTP协议如何工作
4.5.2SMTP协议常用命令
4.5.3SMTP协议应用:使用Socket发送邮件
4.6WebService的前世今生
4.6.1WebService简介
4.6.2认识PHPRPC协议
4.6.3Web服务的实现模式
4.6.4简单对象访问协议SOAP
4.6.5调试工具soapUI
4.7Cookie详解
4.7.1Cookie的基本概念及设置
4.7.2PHP和JavaScript对Cookie的操作
4.7.3Cookie存储机制及应用
4.7.4Cookie跨域与P3P协议
4.7.5本地存储localStorage
4.8Session详解
4.8.1Session的基本概念及设置
4.8.2
列旭松,资深PHP技术工程师,精通PHP及其相关技术,对PHP内核原理有较深入的理解,开发经验丰富。曾自主开发了关键字匹配服务器(http://code.google.com/p/sensitive-filter-server/)和消息队列SquirrelMQ(http://code.google.com/p/squirrel-message-queue/)。平时喜欢开发一些实用的PHP扩展,如PHP字典扩展(红黑树算法)(http://code.google.com/p/php-dict/)和PHP索引扩展(B+树算法)(http://code.google.com/p/php-mini-database/)。精通C语言,同时对Web服务器的架构和优化、高并发服务端编程、Redis和Memcached等技术有深入的研究和认识。活跃于PHPChina和ChinaUnix等专业社区,担任PHPChina论坛内核版块版主。陈文,资深PHP技术工程师,精通PHP及其相关技术,尤其擅长于PHP框架开发和应用架构。他还是一位资深的Java开发工程师,具有Fortran、Scala和C++语言的开发和使用背景,在传统软件和互联网开发领域都有丰富的实战经验。此外,他还擅长TCP/IP编程、多线程与并发程序设计、网络协议分析、数据库性能优化以及各种缓存技术,熟悉MySQL和Oracle等关系数据库产品。现从事网络安全软件开发,以及移动SI业务开发。对语言特性和软件设计思想有独到的见解,追求代码之美和高效率程序开发,爱好钻研底层技术,崇尚和提倡“以理论指导实践”。尤其爱好数学,认为数学是培养和锻炼思维和逻辑能力的重要工具,对算法有一定研究。长期活跃在PHPChina、ITeye和看雪论坛等社区,在PHPChina社区担任版主。