展开全部

主编推荐语

全面讲解PHP内核架构、核心实现与内存管理、词法与句法解析、Zend虚拟机、函数及关键扩展等设计细节与源码实现。

内容简介

滴滴出行专家联合撰写,多位PHP领域大咖推荐,全面吃透PHP底层设计不二之选,全面讲解PHP内核架构、核心构成与内存管理、词法与句法解析、Zend 虚拟机、函数及关键扩展等设计细节与源码实现。

本书逻辑上分为四部分,共计14章内容。

第1~2章解读PHP 7的新特性、源码的整体框架(各目录的源码和功能)。

第3~6章详细介绍PHP 7的变量实现,涵盖基本变量zval的结构、字符串zend_string的实现、核心结构HashTable(即数组)实现,以及类与对象的实现。

第7~11章剖析PHP 7核心的实现,重点是PHP 7的生命周期,涵盖生命周期的模块初始化阶段中配置文件的解析,内存管理原理与实现,词法和语法分析的实现,核心Zend虚拟机的实现。

第12~14章介绍PHP 7中基本语法、函数、扩展的实现。

其中,第3章、第4章、第5章和第14章为本书的重点章节。

目录

  • 版权信息
  • 本书赞誉
  • 前言
  • 第1章 PHP 7概况
  • 1.1 PHP简史与新特性
  • 1.2 PHP 7安装和调试
  • 1.2.1 编译安装
  • 1.2.2 使用GDB调试PHP 7
  • 1.2.3 vld扩展
  • 1.3 PHP 7源码阅读工具介绍
  • 1.3.1 Source Insight
  • 1.3.2 Understand
  • 1.3.3 Vim+Ctags
  • 1.4 本章小结
  • 第2章 初识PHP 7源码整体框架
  • 2.1 PHP 7语言的执行原理
  • 2.1.1 编译型语言与解释型语言
  • 2.1.2 PHP 7的执行原理概述
  • 2.2 PHP 7内核架构
  • 2.3 PHP 7源码结构初步介绍
  • 2.3.1 sapi目录源码
  • 2.3.2 Zend目录源码
  • 2.3.3 main目录源码
  • 2.3.4 ext目录源码
  • 2.3.5 TSRM目录源码
  • 2.4 本章小结
  • 第3章 基本变量
  • 3.1 基本知识
  • 3.1.1 数据类型
  • 3.1.2 结构体与联合体
  • 3.1.3 堆和栈的基本知识
  • 3.2 变量的类型和实现
  • 3.2.1 PHP 5的zval
  • 3.2.2 PHP 7的zval
  • 3.2.3 PHP 7变量类型
  • 3.2.4 整型和浮点型
  • 3.2.5 字符串类型
  • 3.2.6 数组
  • 3.2.7 引用
  • 3.2.8 间接zval
  • 3.2.9 常量和常量AST
  • 3.2.10 资源类型
  • 3.2.11 对象
  • 3.3 变量的作用域
  • 3.3.1 全局变量
  • 3.3.2 局部变量
  • 3.3.3 中间变量
  • 3.3.4 静态变量
  • 3.3.5 常量
  • 3.4 对垃圾回收的支持
  • 3.4.1 gc的基本结构
  • 3.4.2 引用计数
  • 3.4.3 循环引用问题
  • 3.4.4 垃圾回收
  • 3.5 本章小结
  • 第4章 字符串
  • 4.1 字符串的结构
  • 4.1.1 PHP 7字符串的具体实现
  • 4.1.2 字符串的二进制安全
  • 4.1.3 zend_string API
  • 4.2 智能字符串
  • 4.2.1 smart_str对比smart_string
  • 4.2.2 智能字符串的具体实现
  • 4.2.3 smart_str API
  • 4.3 进阶
  • 4.3.1 字符串的赋值与写时分离
  • 4.3.2 字符串的类别(内部字符串)
  • 4.3.3 字符串的类型转换
  • 4.3.4 字符串的双引号与单引号
  • 4.3.5 PHP常用字符串操作函数实现
  • 4.4 本章小结
  • 第5章 数组的实现
  • 5.1 基本概念
  • 5.1.1 数组的语义
  • 5.1.2 数组的概念
  • 5.2 PHP 5数组的实现
  • 5.3 PHP 7数组的实现
  • 5.3.1 基本结构
  • 5.3.2 初始化
  • 5.3.3 packed array和hash array的区别
  • 5.3.4 插入、更新、查找和删除
  • 5.3.5 哈希冲突的解决
  • 5.3.6 扩容和rehash操作
  • 5.3.7 数组的递归保护
  • 5.4 本章小结
  • 第6章 面向对象
  • 6.1 类的种类
  • 6.1.1 普通类
  • 6.1.2 抽象类
  • 6.1.3 接口
  • 6.1.4 特性
  • 6.1.5 final类
  • 6.1.6 匿名类
  • 6.2 类的特性
  • 6.2.1 类的属性
  • 6.2.2 访问控制
  • 6.3 类的实现
  • 6.3.1 类的结构
  • 6.3.2 静态属性、常量和方法
  • 6.3.3 接口和特性
  • 6.3.4 继承
  • 6.4 对象的实现
  • 6.4.1 实现
  • 6.4.2 普通属性
  • 6.5 其他特性
  • 6.5.1 魔术方法
  • 6.5.2 自动加载
  • 6.6 本章小结
  • 第7章 生命周期
  • 7.1 基础知识
  • 7.1.1 信号处理
  • 7.1.2 SAPI简介
  • 7.1.3 SAPI核心结构SG(v)
  • 7.2 CLI模式的生命周期
  • 7.2.1 模块初始化阶段
  • 7.2.2 请求初始化阶段
  • 7.2.3 执行阶段
  • 7.2.4 请求关闭阶段
  • 7.2.5 模块关闭阶段
  • 7.2.6 其他工作
  • 7.3 FPM模式的生命周期
  • 7.3.1 多进程管理
  • 7.3.2 网络编程
  • 7.3.3 FastCGI协议
  • 7.4 其他模式
  • 7.5 本章小结
  • 第8章 配置文件解析
  • 8.1 配置文件简介
  • 8.2 配置基本语法
  • 8.3 配置文件的加载
  • 8.4 扩展配置
  • 8.5 运行时的配置
  • 8.6 本章小结
  • 第9章 内存管理
  • 9.1 内存管理的意义
  • 9.2 内存管理的准备知识
  • 9.2.1 基本概念
  • 9.2.2 内存对齐
  • 9.3 内存管理的数据结构
  • 9.3.1 _zend_mm_heap
  • 9.3.2 _zend_mm_chunk
  • 9.4 内存管理的详细实现
  • 9.4.1 内存管理初始化
  • 9.4.2 内存申请
  • 9.4.3 内存管理之huge内存
  • 9.4.4 内存管理之large内存
  • 9.4.5 内存管理之small内存
  • 9.5 内存回收
  • 9.6 本章小结
  • 第10章 词法和语法分析
  • 10.1 基础知识
  • 10.1.1 编译器
  • 10.1.2 源程序分析
  • 10.1.3 BNF范式
  • 10.2 词法与语法分析器
  • 10.2.1 Lex与YACC
  • 10.2.2 Re2c与Bison
  • 10.3 Token类型
  • 10.4 PHP 7词法与语法相关数据结构
  • 10.4.1 CG(v)宏
  • 10.4.2 zend_stack
  • 10.4.3 zend_ast相关结构
  • 10.4.4 zend_arena
  • 10.4.5 zend_parser_stack_elem
  • 10.5 PHP 7词法与语法分析
  • 10.5.1 整体过程
  • 10.5.2 词法与语法分析阶段
  • 10.6 AST的优势
  • 10.7 源码中的其他使用
  • 10.8 本章小结
  • 第11章 Zend虚拟机
  • 11.1 基础知识
  • 11.1.1 Zend虚拟机架构
  • 11.1.2 符号表
  • 11.1.3 函数调用栈
  • 11.1.4 指令
  • 11.2 相关数据结构
  • 11.2.1 EG(v)
  • 11.2.2 符号表
  • 11.2.3 指令
  • 11.2.4 指令集
  • 11.2.5 执行数据
  • 11.2.6 执行栈
  • 11.3 AST编译过程
  • 11.3.1 op_array初始化
  • 11.3.2 AST编译
  • 11.3.3 设置指令handler
  • 11.4 执行过程
  • 11.4.1 执行栈分配
  • 11.4.2 初始化execute_data
  • 11.4.3 调用hanlder函数执行
  • 11.4.4 释放execute_data
  • 11.5 其他调度方式
  • 11.6 本章小结
  • 第12章 基本语法实现
  • 12.1 条件判断
  • 12.2 循环语句
  • 12.2.1 foreach语句
  • 12.2.2 while语句
  • 12.2.3 for语句
  • 12.2.4 do while语句
  • 12.3 中断与跳转
  • 12.3.1 break的实现
  • 12.3.2 goto的实现
  • 12.4 文件引入
  • 12.5 异常/错误处理
  • 12.6 本章小结
  • 第13章 函数实现
  • 13.1 基础知识
  • 13.2 用户定义函数的编译
  • 13.3 用户定义函数的执行
  • 13.4 内置函数
  • 13.4.1 内置函数的注册
  • 13.4.2 内置函数的执行
  • 13.5 本章小结
  • 第14章 扩展
  • 14.1 扩展的实现原理
  • 14.2 PHP扩展
  • 14.2.1 扩展的实现
  • 14.2.2 JSON扩展
  • 14.3 Zend扩展
  • 14.3.1 Zend扩展的实现
  • 14.3.2 opcache扩展
  • 14.4 自定义扩展
  • 14.4.1 初始化
  • 14.4.2 编译配置
  • 14.4.3 功能实现
  • 14.4.4 注册配置项
  • 14.4.5 编译、安装
  • 14.5 本章小结
  • 附录A php.ini配置项说明
  • 附录B Token与opcode含义对应表
展开全部

评分及书评

评分不足
2个评分
  • 用户头像
    给这本书评了
    4.0

    前面讲得很仔细

      转发
      评论

    出版方

    机械工业出版社有限公司

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