PHP核心技术与最佳实践

生活百科 2023-01-26 08:58生活百科www.aizhengw.cn

PHP核心技术与最佳实践

《PHP核心技术与最佳实践》是2012年机械工业出版社出版的图书,作者是列旭松、陈文。本书系统归纳和深刻解读了PHP开发中的编程思想、底层原理、核心技术、开发技巧、编码规范和最佳实践。

基本介绍

  • 书名PHP核心技术与最佳实践
  • 作者列旭松、陈文
  • 页数540
  • 出版社机械工业出版社
  • 出版时间2012-11-1
  • 装帧平装
  • 开本16开
  • 纸张胶版纸

内容简介

这是一本致力于为希望成为中高级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的编码规范,旨在帮助读者提高开发效率,养成良好编程习惯。

作者简介

列旭松,资深PHP技术工程师,精通PHP及其相关技术,对PHP核心原理有较深入的理解,开发经验丰富。曾自主开发了关键字匹配伺服器和讯息伫列SquirrelMQ。平时喜欢开发一些实用的PHP扩展,如PHP字典扩展(红黑树算法)和PHP索引扩展(B+树算法)。精通C语言,对Web伺服器的架构和最佳化、高并发服务端编程、Redis和Memcached等技术有深入的研究和认识。活跃于PHPChina和ChinaUnix等专业社区,担任PHPChina论坛核心版块版主。
陈文,资深PHP技术工程师,精通PHP及其相关技术,尤其擅长于PHP框架开发和套用架构。他还是一位资深的Java开发工程师,具有Fortran、Scala和C++语言的开发和使用背景,在传统软体和网际网路开发领域都有丰富的实战经验。,他还擅长TCP/IP编程、多执行绪与并发程式设计、网路协定分析、资料库性能最佳化以及各种快取技术,熟悉MySQL和Oracle等关係资料库产品。现从事网路安全软体开发,以及移动SI业务开发。对语言特性和软体设计思想有独到的见解,追求代码之美和高效率程式开发,爱好钻研底层技术,崇尚和提倡“以理论指导实践”。尤其爱好数学,认为数学是培养和锻鍊思维和逻辑能力的重要工具,对算法有一定研究。长期活跃在PHPChina、ITeye和看雪论坛等社区,在PHPChina社区担任版主。

图书目录

前言
第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 本章小结

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有