PHP7内核剖析

PHP7内核剖析

作者: 秦朋

ISBN: 9787121328107 出版時間: 2017-10-01

出版社: 電子工業出版社

秦朋 0 0 0
關注公衆號

推薦關注公衆號

公衆號每日會推送免費電子書,推薦大家關注。

請掃碼關注微信公衆號,或者公衆號搜索“ebookcn”

如有問題需聯系,也請關注公衆號,聯系方式均在公衆號提供。

PHP作為最流行的語言之一,自第一個版本發布至今的二十幾年裡經曆了多次重大改進,PHP7版本最大的特色在于其性能上的突破,比PHP5快了一倍。目前PHP7已經得到了廣泛應用,越來越多的項目從PHP5遷移到了PHP7。目前,關于PHP内核的資料非常有限,《PHP7内核剖析》以當前最為流行的PHP7版本...
PHP作為最流行的語言之一,自第一個版本發布至今的二十幾年裡經曆了多次重大改進,PHP7版本最大的特色在于其性能上的突破,比PHP5快了一倍。目前PHP7已經得到了廣泛應用,越來越多的項目從PHP5遷移到了PHP7。目前,關于PHP内核的資料非常有限,《PHP7内核剖析》以當前最為流行的PHP7版本為基礎,系統性地、盡可能詳細地介紹PHP語言底層的實現,旨在幫助更多的開發者進一步理解PHP,參與到PHP的實現中,為未來PHP的發展貢獻一份力量!全書内容主要包括PHP數據類型的實現、PHP的編譯及執行、PHP内存的管理、函數及面向對象的實現、PHP基礎語法的實現,以及PHP擴展的開發。《PHP7内核剖析》适用于有一定C語言基礎的PHP高級工程師,或者想了解PHP7的内部實現、擴展開發的工程師。
第1章 PHP基礎架構
1.1 簡介
1.2 安裝及調試
1.3 PHP7的變化
1.4 PHP的構成
1.5 生命周期
1.6 小結
第2章 SAPI
2.1 Cli
2.1.1 執行流程
2.1.2 内置Web服務器
2.2 Fpm
2.2.1 基本實現
2.2.2 Fpm的初始化
2.2.3 worker——請求處理
2.2.4 master——進程管理
2.3 Embed
2.3.1 實現
2.3.2 使用
2.4 小結
第3章 數據類型
3.1 變量
3.1.1 變量類型
3.1.2 内部實現
3.2 字符串
3.3 數組
3.3.1 基本實現
3.3.2 散列函數
3.3.3 數組的初始化
3.3.4 插入
3.3.5 哈希沖突
3.3.6 查找
3.3.7 擴容
3.4 引用
3.5 類型轉換
3.5.1 轉換為NULL
3.5.2 轉換為布爾型
3.5.3 轉換為整型
3.5.4 轉換為浮點型
3.5.5 轉換為字符串
3.5.6 轉換為數組
3.5.7 轉換為對象
3.6 小結
第4章 内存管理
4.1 變量的自動GC機制
4.1.1 引用計數
4.1.2 寫時複制
4.1.3 回收時機
4.2 垃圾回收
4.2.1 回收算法
4.2.2 具體實現
4.3 内存池
4.3.1 内存池的初始化
4.3.2 内存分配
4.3.3 系統内存分配
4.3.4 内存釋放
4.4 線程安全
4.4.1 TSRM的基本實現
4.4.2 線程私有數據
4.4.3 線程局部存儲
4.5 小結
第5章 PHP的編譯與執行
5.1 語言的編譯與執行
5.1.1 編譯型語言
5.1.2 解釋型語言
5.2 Zend虛拟機
5.2.1 opline指令
5.2.2 zend_op_array
5.2.3 zend_execute_data
5.2.4 zend_executor_globals
5.3 PHP的編譯
5.3.1 詞法、語法解析
5.3.2 抽象語法樹編譯
5.3.3 pass_two()
5.4 PHP的執行
5.4.1 handler的定義
5.4.2 調度方式
5.4.3 執行流程
5.4.4 全局execute_data和
opline
5.5 運行時緩存
5.6 Opcache
5.6.1 opcode優化
5.6.2 JIT
5.7 小結
第6章 函數
6.1 用戶自定義函數
6.1.1 語法解析
6.1.2 抽象語法樹的編譯
6.2 内部函數
6.3 函數的調用
6.4 函數的執行
6.5 小結
第7章 面向對象
7.1 類
7.1.1 常量
7.1.2 成員屬性
7.1.3 成員方法
7.1.4 類的編譯
7.1.5 内部類
7.1.6 類的自動加載
7.2 對象
7.2.1 對象的創建
7.2.2 非靜态成員屬性的讀寫
7.2.3 對象的複制
7.2.4 對象的比較
7.2.5 對象的銷毀
7.3 繼承
7.3.1 常量的繼承
7.3.2 成員屬性的繼承
7.3.3 成員方法的繼承
7.4 動态屬性
7.5 魔術方法
7.6 小結
第8章 命名空間
8.1 概述
8.2 命名空間的定義
8.3 命名空間的使用
8.3.1 use導入
8.3.2 動态用法
8.4 小結
第9章 PHP基礎語法的實現
9.1 靜态變量
9.2 常量
9.2.1 const
9.2.2 define()
9.3 全局變量
9.3.1 全局變量符號表
9.3.2 全局變量的訪問
9.3.3 全局變量的銷毀
9.3.4 超全局變量
9.4 分支結構
9.4.1 if
9.4.2 switch
9.5 循環結構
9.5.1 while
9.5.2 do while
9.5.3 for
9.5.4 foreach
9.6 中斷及跳轉
9.6.1 break/continue
9.6.2 goto
9.7 include/require
9.8 異常處理
9.8.1 PHP中的try catch
9.8.2 内核中的異常處理
9.9 break/continue LABEL語法的實現
9.10 小結
第10章 擴展開發
10.1 擴展的内部實現
10.2 擴展的構成及編譯
10.2.1 腳本工具
10.2.2 擴展的編寫步驟
10.2.3 config.m4
10.3 鈎子函數
10.3.1 模塊初始化階段
10.3.2 請求初始化階段
10.3.3 請求結束階段
10.3.4 post deactivate階段
10.3.5 模塊關閉階段
10.4 全局資源
10.5 ini配置
10.6 函數
10.6.1 内部函數注冊
10.6.2 函數參數解析
10.6.3 引用傳參
10.6.4 函數返回值
10.6.5 函數調用
10.7 Zval的操作
10.7.1 zval的創建及獲取
10.7.2 變量複制
10.7.3 引用計數
10.7.4 字符串操作
10.7.5 數組操作
10.8 常量
10.9 面向對象
10.9.1 内部類注冊
10.9.2 成員屬性
10.9.3 成員方法
10.9.4 常量
10.9.5 類的實例化
10.10 資源
10.11 小結