新到貨2本75折
PHP 7底層設計與源碼實現

PHP 7底層設計與源碼實現

  • 定價:594
  • 優惠價:87517
  • 運送方式:
  • 臺灣與離島
  • 海外
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 可取貨點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
載入中...
  • 分享
 

內容簡介

本書分為四大部分,共計14章內容。
 
第1篇(第1~2章)主要介紹PHP7的新 特性,以及研讀源碼的方法、PHP7源碼結構等。
 
第2篇(第3~6章)會詳細介紹PHP7的變數實現,涵蓋基本變數zval的結構,字串 zend_string的實現,PHP7中的核心結構HashTable的實現,類和物件的實現。
 
第3篇(第7~11章)介紹PHP7核心的實現,涵蓋 PHP7的生命週期及其模組初始化階段中設定檔的解析,記憶體管理的原理和實現,詞法和語法分析的實現,核心Zend虛擬機器的實現。
 
第4篇(第12~14 章)主要介紹PHP7中語法的實現,涵蓋基本語法的實現,函數的實現,擴展的實現。
 
 

作者介紹

陳雷,滴滴順風車運營行銷研發技術負責人,曾任高級PHP研發工程師、開心網高級PHP研發工程師、PHP研發工程師。清華大學電腦系本科,電腦在職 碩士。目前致力於滴滴順風車智慧運營平臺的建設,有很強的架構能力,豐富的業務抽象經驗與管理經驗。黃桃,滴滴開發工程師,多年PHP開發經驗,尤善高並 發處理、大型網站架構,樂於鑽研技術難點,願意分享。李長林,滴滴工程師,曾就職於、滴滴等知名互聯網公司,專注于高併發Web後臺開發,活躍於開源社 區。李志,Web開發者,曾任職於,現就職於滴滴。王坤,滴滴順風車後端開發工程師,PHP愛好者,多年開發經驗,喜歡學習和交流。
 
 

目錄

本書讚譽

前言

第1章 PHP 7概況1
1.1 PHP簡史與新特性1
1.2 PHP 7安裝和調試7
1.2.1 編譯安裝7
1.2.2 使用GDB調試PHP 78
1.2.3 vld擴展10
1.3 PHP 7源碼閱讀工具介紹13
1.3.1 Source Insight13
1.3.2 Understand16
1.3.3 Vim+Ctags19
1.4 本章小結20

第2章 初識PHP 7源碼整體框架21
2.1 PHP 7語言的執行原理21
2.1.1 編譯型語言與解釋型語言21
2.1.2 PHP 7的執行原理概述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的zval35
3.2.2 PHP 7的zval37
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 間接zval44
3.2.9 常量和常量AST46
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 API69
4.2 智慧字串72
4.2.1 smart_str對比smart_string72
4.2.2 智慧字串的具體實現73
4.2.3 smart_str API75
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_heap219
9.3.2 _zend_mm_chunk223
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與YACC242
10.2.2 Re2c與Bison247
10.3 Token類型252
10.4 PHP 7詞法與語法相關資料結構253
10.4.1 CG(v)宏253
10.4.2 zend_stack255
10.4.3 zend_ast相關結構255
10.4.4 zend_arena262
10.4.5 zend_parser_stack_elem262
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
 

序 ForewordPHP 7的推出,主打的是性能提升,而且幾乎可以讓舊版本無縫地升級,這讓很多公司直接受益,也激起了不少人探索的欲望。

作為互聯網時代運用最廣泛的語言之一,PHP實戰方面的書層出不窮,也不乏很多經典之作,但關於PHP內核分析的書少之又少。PHP入門簡單,但要看懂內 部源碼卻需要非常深厚的功底,這也是PHP的特性,PHP 7內核分析的書可以大幅度地降低分析PHP內部細節的門檻。

這本書最大的特點是:它是集體的智慧,是從學習過程中沉澱下來的,所以內容相對更接地氣,也更簡單易懂。比如詳細介紹zval結構體中每個欄位的含義和作 用,並和PHP 5對比zal的變化,而且還延伸出了不少C的基礎(如結構體和聯合體、記憶體結構的佈局),內容也很全面,從PHP的基本語法,到生命週期、具體的執行過程 以及PHP的“心臟”Zend虛擬機器都有詳細的分析,所以更適合純PHP程式師。他們看完這本書,大體能知道一段代碼經過了什麼樣的流程,然後被機器執 行,最終輸出結果,對程式師來講,有種真正把控一切的爽快感。
這本書也有很多實用的內容,不僅有PHP的內部實現,還詳細介紹了所有opcode的意義、php.ini配置選項的作用,這些可能都可以直接應用在現有程式上,讓程式變得更好。

我很欣喜地看到,不管是PHP官方,還是社區,都有很多的PHP程式師在不斷突破,所以才有了PHP 7、有了Swoole,也有了更多關於PHP進階的書,相信以後還會有更多。
 

詳細資料

  • ISBN:9787111599197
  • 規格:平裝 / 424頁 / 16k / 24.2 x 19 x 2.8 cm / 普通級 / 單色印刷 / 1-1
  • 出版地:中國

最近瀏覽商品

 

相關活動

  • 從「格」的概念出發|
 

購物說明

溫馨提醒您:若您訂單中有購買簡體館無庫存/預售書或庫存於海外廠商的書籍,建議與其他商品分開下單,以避免等待時間過長,謝謝。

大陸出版品書況:因裝幀品質及貨運條件未臻完善,書況與台灣出版品落差甚大,封面老舊、出現磨痕、凹痕等均屬常態,故簡體字館除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。 

 

請注意,部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

調貨時間:若您購買海外庫存之商品,於您完成訂購後,商品原則上約45個工作天內抵台(若有將延遲另行告知)。為了縮短等待的時間,建議您將簡體書與其它商品分開訂購,以利一般商品快速出貨。 

若您具有法人身份為常態性且大量購書者,或有特殊作業需求,建議您可洽詢「企業採購」。 

退換貨說明 

會員所購買的商品均享有到貨十天的猶豫期(含例假日)。退回之商品必須於猶豫期內寄回。 

辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 

訂購本商品前請務必詳閱商品退換貨原則

  • 翦商作者新作79折
  • 針灸匠張寶旬
  • 浪漫小說精選3本72折