PHP 7底层设计与源码实现PDF格式文档图书下载
- 购买点数:14 点
- 作 者:陈雷 黄桃 李长林 李志 王坤 肖涛 朱栋编著
- 出 版 社:北京:机械工业出版社
- 出版年份:2018
- ISBN:9787111599197
- 标注页数:424 页
- PDF页数:440 页
第1章 PHP 7概况 1
1.1 PHP简史与新特性 1
1.2 PHP 7安装和调试 7
1.2.1 编译安装 7
1.2.2 使用GDB调试PHP 7 8
1.2.3 vld扩展 10
1.3 PHP 7源码阅读工具介绍 13
1.3.1 Source Insitght 13
1.3.2 Understand 16
1.3.3 Vim+Ctags 19
1.4 本章小结 20
第2章 初识PHP 7源码整体框架 21
2.1 PHP 7语言的执行原理 21
2.1.1 编译型语言与解释型语言 21
2.1.2 PHP7的执行原理概述 23
2.2 PHP 7内核架构 26
2.3 PHP 7源码结构初步介绍 27
2.3.1 sapi目录源码 27
2.3.2 Zend目录源码 28
2.3.3 main目录源码 29
2.3.4 ext目录源码 29
2.3.5 TSRM目录源码 29
2.4 本章小结 30
第3章 基本变量 31
3.1 基本知识 31
3.1.1 数据类型 31
3.1.2 结构体与联合体 32
3.1.3 堆和栈的基本知识 34
3.2 变量的类型和实现 35
3.2.1 PHP 5的zval 35
3.2.2 PHP 7的zval 37
3.2.3 PHP 7变量类型 40
3.2.4 整型和浮点型 41
3.2.5 字符串类型 42
3.2.6 数组 43
3.2.7 引用 43
3.2.8 间接zval 44
3.2.9 常量和常量AST 46
3.2.10 资源类型 47
3.2.11 对象 47
3.3 变量的作用域 49
3.3.1 全局变量 49
3.3.2 局部变量 49
3.3.3 中间变量 50
3.3.4 静态变量 51
3.3.5 常量 51
3.4 对垃圾回收的支持 51
3.4.1 gc的基本结构 52
3.4.2 引用计数 53
3.4.3 循环引用问题 55
3.4.4 垃圾回收 55
3.5 本章小结 63
第4章 字符串 64
4.1 字符串的结构 64
4.1.1 PHP 7字符串的具体实现 65
4.1.2 字符串的二进制安全 68
4.1.3 zend_string API 69
4.2 智能字符串 72
4.2.1 smart_str对比smart_string 72
4.2.2 智能字符串的具体实现 73
4.2.3 smart_str API 75
4.3 进阶 76
4.3.1 字符串的赋值与写时分离 76
4.3.2 字符串的类别(内部字符串) 79
4.3.3 字符串的类型转换 84
4.3.4 字符串的双引号与单引号 87
4.3.5 PHP常用字符串操作函数实现 90
4.4 本章小结 92
第5章 数组的实现 93
5.1 基本概念 93
5.1.1 数组的语义 93
5.1.2 数组的概念 94
5.2 PHP 5数组的实现 95
5.3 PHP 7数组的实现 99
5.3.1 基本结构 100
5.3.2 初始化 105
5.3.3 packed array和hash array的区别 114
5.3.4 插入、更新、查找和删除 123
5.3.5 哈希冲突的解决 130
5.3.6 扩容和rehash操作 132
5.3.7 数组的递归保护 134
5.4 本章小结 135
第6章 面向对象 136
6.1 类的种类 136
6.1.1 普通类 136
6.1.2 抽象类 137
6.1.3 接口 138
6.1.4 特性 140
6.1.5 final类 142
6.1.6 匿名类 142
6.2 类的特性 143
6.2.1 类的属性 143
6.2.2 访问控制 143
6.3 类的实现 144
6.3.1 类的结构 144
6.3.2 静态属性、常量和方法 149
6.3.3 接口和特性 151
6.3.4 继承 152
6.4 对象的实现 155
6.4.1 实现 155
6.4.2 普通属性 156
6.5 其他特性 157
6.5.1 魔术方法 157
6.5.2 自动加载 157
6.6 本章小结 159
第7章 生命周期 160
7.1 基础知识 160
7.1.1 信号处理 160
7.1.2 SAPI简介 164
7.1.3 SAPI核心结构SG(v) 166
7.2 CLI模式的生命周期 167
7.2.1 模块初始化阶段 168
7.2.2 请求初始化阶段 175
7.2.3 执行阶段 177
7.2.4 请求关闭阶段 178
7.2.5 模块关闭阶段 179
7.2.6 其他工作 180
7.3 FPM模式的生命周期 181
7.3.1 多进程管理 182
7.3.2 网络编程 193
7.3.3 FastCGI协议 195
7.4 其他模式 200
7.5 本章小结 201
第8章 配置文件解析 202
8.1 配置文件简介 202
8.2 配置基本语法 203
8.3 配置文件的加载 204
8.4 扩展配置 208
8.5 运行时的配置 212
8.6 本章小结 213
第9章 内存管理 214
9.1 内存管理的意义 214
9.2 内存管理的准备知识 216
9.2.1 基本概念 216
9.2.2 内存对齐 218
9.3 内存管理的数据结构 219
9.3.1 _zend_mm_heap 219
9.3.2 _zend_mm_chunk 223
9.4 内存管理的详细实现 226
9.4.1 内存管理初始化 227
9.4.2 内存申请 227
9.4.3 内存管理之huge内存 229
9.4.4 内存管理之large内存 230
9.4.5 内存管理之small内存 231
9.5 内存回收 234
9.6 本章小结 235
第10章 词法和语法分析 236
10.1 基础知识 236
10.1.1 编译器 237
10.1.2 源程序分析 237
10.1.3 BNF范式 241
10.2 词法与语法分析器 242
10.2.1 Lex与YACC 242
10.2.2 Re2c与Bison 247
10.3 Token类型 252
10.4 PHP 7词法与语法相关数据结构 253
10.4.1 CG(v)宏 253
10.4.2 zend_stack 255
10.4.3 zend_ast相关结构 255
10.4.4 zend_arena 262
10.4.5 zend_parser_stack_elem 262
10.5 PHP 7词法与语法分析 263
10.5.1 整体过程 263
10.5.2 词法与语法分析阶段 263
10.6 AST的优势 273
10.7 源码中的其他使用 275
10.8 本章小结 275
第11章 Zend虚拟机 276
11.1 基础知识 276
11.1.1 Zend虚拟机架构 276
11.1.2 符号表 278
11.1.3 函数调用栈 278
11.1.4 指令 280
11.2 相关数据结构 281
11.2.1 EG(v) 281
11.2.2 符号表 281
11.2.3 指令 284
11.2.4 指令集 288
11.2.5 执行数据 290
11.2.6 执行栈 291
11.3 AST编译过程 294
11.3.1 op_array初始化 294
11.3.2 AST编译 295
11.3.3 设置指令handler 307
11.4 执行过程 308
11.4.1 执行栈分配 309
11.4.2 初始化execute_data 309
11.4.3 调用hanlder函数执行 311
11.4.4 释放execute_data 315
11.5 其他调度方式 315
11.6 本章小结 316
第12章 基本语法实现 317
12.1 条件判断 317
12.2 循环语句 322
12.2.1 foreach语句 322
12.2.2 while语句 324
12.2.3 for语句 327
12.2.4 do while语句 329
12.3 中断与跳转 331
12.3.1 break的实现 331
12.3.2 goto的实现 335
12.4 文件引入 338
12.5 异常/错误处理 339
12.6 本章小结 343
第13章 函数实现 344
13.1 基础知识 344
13.2 用户定义函数的编译 345
13.3 用户定义函数的执行 352
13.4 内置函数 358
13.4.1 内置函数的注册 358
13.4.2 内置函数的执行 360
13.5 本章小结 360
第14章 扩展 361
14.1 扩展的实现原理 362
14.2 PHP扩展 363
14.2.1 扩展的实现 363
14.2.2 JSON扩展 366
14.3 Zend扩展 367
14.3.1 Zend扩展的实现 367
14.3.2 opcache扩展 369
14.4 自定义扩展 378
14.4.1 初始化 379
14.4.2 编译配置 380
14.4.3 功能实现 381
14.4.4 注册配置项 383
14.4.5 编译、安装 385
14.5 本章小结 386
附录A php.ini配置项说明 387
附录B Token与opcode含义对应表 413
- 《PHP 7底层设计与源码实现》陈雷,黄桃,李长林,李志,王坤,肖涛,朱栋编著 2018
- 《Android底层驱动分析和移植》高金昌,张明星编著 2015
- 《STL源码剖析》侯捷著 2002
- 《SPARK MLLIB机器学习 算法、源码及实战详解》黄美灵著 2016
- 《Storm源码分析》李明,王晓鹏编著 2014
- 《iBATIS框架源码剖析》任钢著 2010
- 《容器技术系列 Docker源码分析》孙宏亮著 2015
- 《ANDROID底层接口与驱动开发技术详解》陈强编著 2012
- 《Android底层开发技术实战详解 内核、移植和驱动》王振丽编著 2012
- 《揭秘Java虚拟机 JVM设计原理与实现》封亚飞著 2017
- 《PHP 7底层设计与源码实现》陈雷,黄桃,李长林,李志,王坤,肖涛,朱栋编著 2018
- 《过水土坝》李世宁,李长林编著 1983
- 《村镇建设与人居环境》王坤,李志强编著 2006
- 《美国磨削技术》(美)法拉戈(Farago,F.T.)编著;李长林译 1991
- 《不让须眉的女杰》李长林,李一兵等著 2001
- 《护理伦理与法律法规》秦敬民主编;王彩霞,李怀珍,李志会副主编;万婷,王彩霞,孙雪莲,李怀珍,李志会,李志强,李洪峰,周脉更,秦敬民,蒋颖编 2014
- 《深入浅出C#编程》张玉平,李长林编著 2004
- 《电路原理》刘长林,李永泉等编著 2009
- 《欧美名剧探魅》李万钧,陈雷著 1987
- 《世界古代史》王素色,李长林著 1999
- 《北京志 工业卷 机械工业志 农机工业志》北京市地方志编纂委员会编 2001
- 《机械工业和机械图书的出版发行 机械工业出版社发行培训教材》陈慧毅,杨少晨编 1988
- 《冷冲模设计》赵孟栋主编 2006
- 《机械工业出版社》慕拉维叶夫著;孔庆复译 1959
- 《北京市立高级工业职业学校机械科毕业学生韩丕纯分数表/韩丕纯毕业证书》 1949
- 《中等职业教育机电类规划教材 机械工业出版社精品教材 机械设计基础 第2版》机械职业教育基础课教学指导委员会机械设计学科组组编;柴鹏飞主编 2006
- 《集知播识春秋录 机械工业出版社 1952-1988.机械科学技术情报研究所 1958-1988》机械科技情报研究所,机械工业出版社编 1988
- 《电线电缆》上海市电缆研究所编 1975
- 《FoxBASE+ 三周通》文忠等编著 1995
- 《FoxBASE+实验指导书》李爱华,王建诚编 1994