PHP7內核剖析

PHP7內核剖析

作者: 秦朋
出版社: 電子工業
出版在: 2017-10-01
ISBN-13: 9787121328107
ISBN-10: 7121328100
裝訂格式: 平裝
總頁數: 479 頁




內容描述


PHP作為流行的語言之一,自第一個版本發布至今的二十幾年裡經歷了多次重大改進,PHP7版本最大的特色在於其性能上的突破,比PHP5快了一倍。
目前PHP7已經得到了廣泛應用,越來越多的項目從PHP5遷移到了PHP7。關於PHP內核的資料非常有限,本書以當前流行的PHP7版本為基礎,系統性地、盡可能詳細地介紹PHP語言底層的實現,旨在幫助更多的開發者進一步理解PHP,參與到PHP的實現中,為未來PHP的發展貢獻一份力量!內容主要包括PHP數據類型的實現、PHP的編譯及執行、PHP內存的管理、函數及面向對象的實現、PHP基礎語法的實現,以及PHP擴展的開發。


目錄大綱


第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小結


作者介紹


目前就職於滴滴引擎技術部,負責專快車分單架構相關的工作,曾作為核心成員參與了滴滴小巴業務線的成立,曾先後就職於360、搜狗,有4年多的PHP、C 、Golang開發經驗,熟悉PHP擴展的實現,對PHP內核有深入的理解。




相關書籍

Mapping with Drupal (Paperback)

作者 Alan Palazzolo Thomas Turnbull

2017-10-01

CSS選擇器世界

作者 張鑫旭

2017-10-01

網頁應用程式設計|使用 Node 和 Express, 2/e (Web Development with Node and Express, 2/e)

作者 Ethan Brown 賴屹民 譯

2017-10-01