-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

PHP核心技術與最佳實踐 第2版

( 簡體 字)
作者:列旭松 陳文類別:1. -> 程式設計 -> 網路編程 -> PHP
譯者:
出版社:機械工業出版社PHP核心技術與最佳實踐 第2版 3dWoo書號: 49890
詢問書籍請說出此書號!

缺書
NT售價: 645

出版日:9/1/2018
頁數:575
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111608417
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

本書的第1版寫作于2011年,并在2012年末出版,至今已經過去六七年了。本書第1版受到了許多讀者的熱愛,并得到了很多有建設性的意見。

PHP到底要怎么學?學什么?一個中高級PHP程序員應該是什么樣的?我想這也是很多PHP新手和工作了一兩年的PHP開發者的疑惑。本書所要解決的就是這一系列問題。很欣慰收到了許多讀者的來信,反饋本書第1版幫助他們在PHP的道路上越走越遠,讀者的來信讓我感受到了鼓勵,也感受到了壓力。

隨著PHP社區的發展,以及整個互聯網開發領域層出不窮的新技術和新理論,第1版的一些內容已經跟不上技術的發展,我們深感有必要在第1版的基礎上做出大的更新,以滿足讀者的需求。

我們先來看一看第1版寫作至今,PHP社區以及互聯網開發領域技術的一些發展。

1)PHP版本從主流的PHP5.3發展到PHP7,性能有了一倍以上的提升,無論是語法還是PHP內核,都有了許多新變化。

2)面向對象開發理念已深入人心,PHP框架存在的必要性也已達成共識。模板引擎和PEAR基本退出PHP框架開發領域,PHP框架開始使用Composer管理依賴和構建,Composer已經發展成為一種必備技能。

3)數據庫領域,事務的重要性更多被提及和承認。隨著業務規模的增長,單機已經不能滿足業務需求,分布式事務、數據庫中間件以及全文搜索已經成了數據庫里常用的三個工具。同時,NoSQL也從一個小眾技術發展為主流技術。

4)分布式的概念已經盡人皆知,服務治理和微服務的概念橫空出世并在PHP領域越來越受到重視,Docker等容器概念也已成為尋常技術。

基于上述變化,本書的第2版應運而生,引入了更多內容,并去除了已經過時和淘汰的篇章。

在我看來,一本技術書籍的價值在于其對知識的提煉和其與眾不同的地方。舉例來說,到一個書店去看書,你最想用筆抄下來或用手機拍下來的那幾頁,就是對你幫助最大的部分,也是你認為這本書的價值所在。正是基于這個想法,我們思考了第2版該寫什么,怎么寫,哪些地方會對讀者有幫助。我們試圖從不同的角度帶領讀者來看PHP,給這本書注入一些不一樣的東西。我希望這是一件有意義的事。

新技術和新理念爆炸式增長,一本書不能說盡天下事,但是我還是希望本書能夠幫到你。

本書適合的對象

PHP愛好者;

掌握了PHP語法基礎,想要進階的初級程序員;

對PHP框架和擴展開發感興趣的讀者;

對NoSQL應用和實現原理感興趣,對高并發感興趣的讀者;

對PHP網絡應用感興趣,想知道HTTP協議、Socket等更多細節的讀者;

想要在大型互聯網公司的PHP面試中獲得成功的讀者;

開設相關課程的大專院校的學生;

公司內部培訓的學員。

如何閱讀本書

本書一共有13章。每個章節都可以單獨閱讀,但部分知識點存在一定的銜接,建議按先后順序閱讀。

第1章主要講解了面向對象開發的思想,重點講述面向對象模型的建立,以及面向對象的一些基礎概念。本章通過大量的對比和舉例,尤其是與Java的對比,力圖從不同的角度來講解PHP的面向對象特性,讓讀者加深理解,也讓PHP程序員看到不同的面向對象。求同存異是本章的核心思想。

第2章用簡練的語言講解面向對象設計的五大原則,這五大原則也是理解設計模式的基礎所在,目的在于幫助讀者站在一個更高的角度來思考面向對象的問題。

第3章著重介紹HTTP協議、Socket開發和TCP/IP抓包工具的使用,WebService、Cookie和Session的使用等。結合實戰,向讀者闡述網絡開發的核心和重點,特別是對HTTP協議的理解。HTTP協議是Web開發的基石,也是各種面試和開發中必然會遇到的知識點。而Socket則是應用交互的橋梁,保證了應用的可擴展性。

第4章著重介紹RPC的概念,包括其定義和組成元素,然后以ZooKeeper和etcd為例,介紹服務注冊和發現的概念。讀者在學習了本章內容后,就能對微服務中最關鍵的服務治理有更清晰的了解,進而理解微服務中服務治理組件的原理。

第5章沒有介紹CRUD,而是主要介紹PDO、MySQL優化、事務、存儲過程和事件調度機制以及MySQL安全防范。隨著PHP社區的發展以及PHP7帶來的性能提升,PHP在互聯網大型應用中起到了舉足輕重的作用。在這些大型應用中,事務是個很關鍵的東西,用好事務,才能保證數據的一致性和準確性。同時,針對大型應用中涉及的性能優化這一塊,本章講解了分表分庫、MySQL中間件以及全文搜索的知識。讀者在學習了本章后,對MySQL的性能優化和擴展會有一個更清晰的把握和理解。

第6章以MVC為理論依據,從零開始寫一個簡單的PHP框架,講解控制器層、數據模型層、視圖層的原理和實現,并且引入了自動加載、異常管理、攔截器的概念。隨著PSR規范的完善以及Composer構建工具的流行,使用Composer來管理依賴已經成為一種很流行和通用的做法,因此我們在本章中介紹了Composer的概念,并用其改造了我們的框架,最后介紹了控制反轉與依賴注入的概念。

第7章是本書的核心所在,介紹PHP擴展開發的幾個重要知識點,如擴展框架搭建、PHP生命周期和PHP變量在內核中的實現方式、Zend引擎、內存管理等。最后講解唯一ID生成擴展實例,幫助讀者鞏固前面學到的知識。通過學習本章,讀者可以深入到PHP底層,做到知其然也知其所以然。

第8章主要介紹緩存的基本原理和三個衡量指標,通過幾個實例講解,加深讀者對緩存的理解。學習本章后,讀者應該能設計出一個比較合理的緩存方案。除了緩存的基本概念外,本章還講述了Opcache服務端緩存和客戶端緩存的應用。

第9章不是對Memcached的泛泛而談,而是深入Memcached的實現和內部結構,讓讀者掌握Memcached的高級應用,對架構復雜環境的緩存層有清晰的認識。

第10章重點介紹Redis的深入應用,如事務處理、主從同步等,和第9章類似,同樣深入探討了Redis的實現內幕。最后,本章著重講解了Redis集群的原理和落地實現,合理利用Redis可以為我們解決大流量高并發的應用。

第11章探討了高性能架構的基本出發點,重點以HandlerSocket的使用、MySQL主從復制、反向代理緩存軟件Varnish和任務分發框架Gearman為例,講述了幾種高性能架構中會使用的技術。

第12章科學的調試方法有助于快速找出潛在的BUG和理解復雜應用的流程,提高開發效率。單元測試是代碼質量的保障。最后,介紹了使用JMeter進行壓力測試的方法。

第13章通過介紹Hash算法的基本原理,然后用此算法實現一個簡單的基于Hash的數據庫,讓讀者意識到算法的重要性和可操作性。

本書第1、2、3、5、6、8、12章由陳文撰寫,第7、9、10、11、13章由列旭松撰寫,第4章由兩人共同參與完成。

勘誤和支持

由于水平和開發經驗有限,且計算機技術更新較快,在撰寫的過程中難免有不足,有些章節的內容可能在未來的某個時候不再適用,還望讀者理解和體諒,并懇請讀者批評指正。如果你有好的建議,或者對書中部分內容有疑惑,可與我們聯系,我們將盡量為讀者提供滿意的解答。
期待能夠得到你們的真摯反饋。

感謝

首先要感謝PHP之父——Rasmus Lerdorf,是他創建了這個簡單、輕松、有趣、快速而高效的語言。

其次要感謝PHP社區每一位充滿活力的朋友,正是在和你們的交流中,使我學到了更多的東西,本書有不少內容來自于社區的智慧。

這是我和列旭松合著的第一本書,在這里尤其要感謝機械工業出版社的大力支持,特別是楊福川老師和張錫鵬老師,在一年多的時間里,是你們耐心地指導和認真編審才有了這本書的誕生。

還要感謝我的合作人列旭松的大力支持,正是他完成了本書最核心的章節,在后期與出版社和編輯溝通,并在稿件修改上付出了很多心血才保證書稿得以按時完成。

最后,還要感謝我的家人和朋友的支持。



陳文
內容簡介:

PHP領域公認的標桿之作,被譽為“PHP開發工程師能力進階的必讀書”,致力于為希望成為中高級PHP程序員的讀者提供全面、高效的指導。

本書第1版出版于2012年,累計印刷超過10次,6年后全新升級,一方面根據PHP技術最新的發展刪除和更新了一些過時的內容,另一方面對原來的部分內容作了深度優化。

全書共13章,邏輯上分為5個部分:

第一部分(1∼2章):從不同的角度闡述了面向對象軟件設計思想的核心概念、技術和原則,分析了面向對象的特性、設計模式的理念,指出了如何設計低耦合、高可擴展性的軟件,等等。

第二部分(3∼6章):詳細講解了PHP網絡編程的原理、方法、技巧和一些重要的操作,PDO、數據庫應用優化,數據庫設計和MySQL的高級應用,PHP框架的實現原理。

第三部分(第7章):圍繞PHP擴展開發進行了細致而深入的探討,解析了PHP的底層實現和Zend虛擬機API,并用PHP擴展開發的實例帶領讀者走進PHP的底層世界,旨在讓讀者對PHP性能優化、底層原理進行深入的理解。

第四部分(8∼10章):重點討論了緩存的設計、Memcached的原理與實踐、NoSQL數據庫Redis源碼分析與應用實踐等內容。

第五部分(12∼13章)詳細講解了PHP代碼的調試和測試、Hash算法和數據庫的實現。



本書第1版出版于2012年,至今仍熱銷并不斷收到讀者反饋,但是這6年來,PHP技術和互聯網開發領域有很多新變化:

(1)PHP從PHP5.3版本到PHP7版本,性能大幅提升,語法和內容都有新變化。

(2)模板引擎和Pear逐漸被取代,PHP框架開始使用Composer管理依賴和構建,Composer已經成為一種必備技能。

(3)分布式事務、數據庫中間件以及全文搜索已經成為數據庫里最常用的三個工具,NoSQL從一個小眾技術發展為大眾流行技術。

(4)服務治理和微服務已經流行并在PHP領域越來越受重視。

……

基于上述變化,無論是讀者還是作者,都有了迫切更新本書的需求。第2版在第1版的基礎上,做了如下更新:

(1)新增“命名空間”和“自動加載”等重要知識點。

(2)新增Laravel框架和composer依賴管理等流行內容。

(3)對“異常和錯誤處理”的內容進行了增強。

(4)刪除“正則表達式”“PHP模板引擎”等在PHP開發中不再推薦使用或使用減少的知識點。

(5)新增HTTP2和TCP/IP相關內容,以滿足高性能架構的需求。

(6)新增集群和分布式環境下的會話處理相關內容。

(7)新增“RPC和微服務”等熱點技術內容。

(8)新增了MySQL全文檢索、ElasticSearch、數據庫中間件等面向更復雜業務的數據庫技術。

(9)新增了“PHP框架實現原理”的內容,Composer框架已經成為主流開發模式。

(10)對緩存相關內容做了較大改動,新增了近幾年較新穎和高效的緩存算法。

(11)結合PHP的最新版本,對測試與調試的內容做了較大修改。

(12)對擴展相關的內容進行了增強。
目錄:

前言
第1章 面向對象思想的核心概念1
1.1 面向對象的“形”與“本”2
1.1.1 對象的“形”2
1.1.2 對象的“本”4
1.1.3 對象與數組6
1.1.4 對象與類6
1.2 魔術方法的應用8
1.2.1 set和get方法8
1.2.2 call和callStatic方法…11
1.2.3 toString方法和debugInfo方法13
1.3 命名空間與自動加載18
1.3.1 理解命名空間18
1.3.2 自動加載21
1.4 繼承與多態21
1.4.1 類的組合與繼承22
1.4.2 各種語言中的多態26
1.5 面向接口編程30
1.5.1 接口的作用30
1.5.2 對PHP接口的思考32
1.6 反射35
1.6.1 如何使用反射API35
1.6.2 反射有什么作用37
1.7 異常和錯誤處理39
1.7.1 如何使用異常處理機制39
1.7.2 怎樣看PHP的異常45
1.7.3 PHP中的錯誤級別45
1.7.4 PHP中的錯誤處理機制47
1.7.5 PHP7對異常機制的改進49
1.8 本章小結53
第2章 面向對象的設計原則54
2.1 面向對象設計的五大原則55
2.1.1 單一職責原則55
2.1.2 接口隔離原則63
2.1.3 開放-封閉原則66
2.1.4 替換原則69
2.1.5 依賴倒置原則71
2.2 一個面向對象留言本的實例73
2.3 面向對象的思考77
2.4 本章小結78
第3章 PHP網絡技術及應用79
3.1 HTTP協議詳解79
3.1.1 HTTP協議與HTTP/2協議…79
3.1.2 HTTP協議如何工作81
3.1.3 HTTP應用:模擬灌水機器人86
3.1.4 垃圾信息防御措施92
3.2 抓包工具96
3.2.1 抓包工具分類96
3.2.2 Fiddler功能與原理96
3.2.3 安裝Fiddler97
3.2.4 Fiddler基本界面98
3.2.5 使用Fiddler進行HTTP斷點調試101
3.3 Socket進程通信機制及應用104
3.3.1 進程通信相關概念104
3.3.2 Socket演示:實現服務器端與客戶端的交互105
3.3.3 使用wireshar分析TCP/IP數據包108
3.3.4 Socket函數原型114
3.3.5 PHP中的Socket函數114
3.3.6 Socket交互應用:使用Socket抓取數據117
3.4 cURL工具及應用119
3.4.1 建立cURL請求的基本步驟119
3.4.2 檢查cURL錯誤和獲取返回信息120
3.4.3 在cURL中偽造頭信息122
3.4.4 在cURL中用POST方法發送數據124
3.4.5 使用cURL實現簡單的文件上傳服務125
3.4.6 cURL批處理129
3.4.7 cURL設置項130
3.5 簡單郵件傳輸協議SMTP131
3.5.1 SMTP協議如何工作132
3.5.2 SMTP協議常用命令133
3.5.3 SMTP協議應用:使用Socket發送郵件133
3.6 WebService的前世今生138
3.6.1 WebService簡介138
3.6.2 Web服務的實現模式138
3.6.3 簡單對象訪問協議SOAP…140
3.6.4 調試工具soapUI145
3.7 Cookie詳解148
3.7.1 Cookie的基本概念及設置…148
3.7.2 PHP和JavaScript對Cookie的操作149
3.7.3 Cookie存儲機制及應用151
3.7.4 Cookie跨域與P3P、CORS協議153
3.7.5 本地存儲localStorage156
3.8 Session詳解158
3.8.1 Session的基本概念及設置158
3.8.2 Session的工作原理159
3.8.3 Session入庫161
3.8.4 集群環境下的Session處理165
3.8.5 Cookie與Session問答166
3.9 本章小結167
第4章 RPC與服務治理的概念169
4.1 理解RPC170
4.1.1 RPC的原理171
4.1.2 RPC的組成元素172
4.2 HPROSE的介紹174
4.3 何為服務治理176
4.4 服務發現與服務注冊177
4.4.1 Paxos協議178
4.4.2 ZooKeeper的介紹與安裝…179
4.4.3 深入了解ZooKeeper180
4.4.4 ZooKeeper的應用183
4.4.5 etcd的介紹185
4.4.6 在PHP中使用etcd參與服務治理187
4.5 高性能網絡庫193
4.6 微服務概念簡介194
4.7 本章小結196
第5章 PHP與數據庫基礎197
5.1 什么是PDO197
5.1.1 PDO預定義類198
5.1.2 如何使用PDO199
5.1.3 PDO參數綁定與預編譯200
5.1.4 PDO事務處理205
5.1.5 PDO的效率問題206
5.2 數據庫應用優化206
5.2.1 索引與性能分析206
5.2.2 服務器和配置的優化209
5.2.3 MySQL瓶頸及應對措施211
5.3 數據庫設計212
5.3.1 范式與反范式212
5.3.2 數據庫分區213
5.3.3 分表的應用215
5.4 MySQL的高級應用217
5.4.1 MySQL視圖217
5.4.2 MySQL存儲過程和事件調度220
5.4.3 用MySQL模擬消息隊列223
5.4.4 SQL注入漏洞與防范226
5.4.5 MySQL全文搜索與Elasticsearch231
5.5 數據庫鎖與事務239
5.5.1 數據庫鎖239
5.5.2 數據庫事務246
5.5.3 分布式事務254
5.6 數據庫中間件257
5.6.1 中間件的介紹257
5.6.2 數據庫中間件的原理與實現257
5.7 本章小結263
第6章 PHP框架實現原理264
6.1 MVC模式264
6.2 PHP框架Lonicera 0.1265
6.2.1 實現bootstrap267
6.2.2 路由器層的實現269
6.2.3 數據模型274
6.2.4 視圖層實現282
6.2.5 對框架的初步改進286
6.3 Lonicera 0.2框架增強290
6.3.1 引入異常機制290
6.3.2 攔截器和插件的原理與實現293
6.3.3 Request增強與安全防御296
6.4 Lonicera框架0.3版實現297
6.4.1 composer的介紹與安裝297
6.4.2 composer的類加載機制301
6.4.3 使用composer來重構框架303
6.4.4 基于composer的Model增強307
6.4.5 控制反轉與依賴注入309
6.5 本章小結318
第7章 PHP擴展開發319
7.1 為什么要開發PHP擴展319
7.2 搭建PHP擴展框架319
7.2.1 PHP源代碼目錄320
7.2.2 ext_skel工具320
7.2.3 Windows平臺環境配置320
7.2.4 Linux平臺環境配置323
7.2.5 PHP的生命周期325
7.3 PHP內核中的變量327
7.3.1 PHP變量在內核中的存儲方式327
7.3.2 PHP內核變量訪問宏329
7.3.3 引用計數器與寫時復制330
7.4 PHP內核中的HashTable分析…332
7.4.1 PHP內核HashTable的數據結構332
7.4.2 HashTable的代碼實現337
7.5 Zend API詳解與擴展編寫341
7.5.1 什么是Zend引擎342
7.5.2 Zend引擎內存管理342
7.5.3 PHP擴展的架構342
7.5.4 接收用戶傳遞的參數350
7.5.5 在PHP擴展中創建變量357
7.5.6 在PHP擴展中為變量賦值…360
7.5.7 錯誤和輸出API371
7.5.8 運行時信息函數374
7.5.9 調用用戶自定義函數374
7.5.10 PHP配置項376
7.5.11 創建常量的宏379
7.5.12 對象創建與操作380
7.6 唯一ID生成擴展實現383
7.6.1 snowflake算法384
7.6.2 自旋鎖原理385
7.6.3 擴展的實現387
7.7 本章小結389
第8章 緩存詳解390
8.1 認識緩存390
8.1.1 為什么使用緩存390
8.1.2 命中率391
8.1.3 緩存更新策略392
8.1.4 緩存最大數據量394
8.2 文件緩存394
8.2.1 文件緩存機制394
8.2.2 文件緩存開源產品Secache396
8.3 Opcode緩存398
8.4 客戶端緩存404
8.4.1 客戶端緩存規則405
8.4.2 HTTP協議中的緩存使用…405
8.4.3 HTTP緩存實例408
8.4.4 HTML 5中的Application Cache410
8.5 Web服務器緩存411
8.5.1 Apache緩存412
8.5.2 Nginx緩存412
8.6 本章小結414
第9章 Memcached使用與實踐415
9.1 為什么要用Memcached415
9.2 Memcached的安裝及使用415
9.2.1 安裝Memcached服務器416
9.2.2 安裝Memcached客戶端417
9.2.3 使用memcache擴展訪問Memcached服務器418
9.2.4 使用Memcached加速Web應用421
9.3 深入了解Memcached422
9.3.1 Memcached如何支持高并發422
9.3.2 使用Slab分配算法保存數據422
9.3.3 刪除過期item426
9.3.4 使用LRU算法淘汰數據427
9.3.5 Memcached多線程模型428
9.4 Memcached分布式布置方案431
9.4.1 普通Hash分布431
9.4.2 一致性Hash分布432
9.4.3 一致性Hash分布算法實例434
9.5 本章小結436
第10章 Redis使用與實踐437
10.1 Redis的安裝及使用437
10.1.1 Redis安裝步驟437
10.1.2 修改Redis配置文件438
10.1.3 運行Redis服務器439
10.1.4 key相關命令439
10.1.5 Redis支持的數據類型…441
10.1.6 Redis排序命令詳解447
10.2 事務處理449
10.2.1 事務處理原理449
10.2.2 事務處理實現450
10.3 持久化452
10.3.1 內存快照452
10.3.2 日志追加452
10.4 主從同步453
10.4.1 Redis主從同步原理453
10.4.2 Slave端的工作流程454
10.4.3 Master端的工作流程457
10.5 Redis集群實戰462
10.5.1 Redis集群搭建462
10.5.2 Redis集群原理467
10.6 擴展庫phpredis安裝及使用470
10.7 Redis應用實踐470
10.7.1 使用消息隊列發布微博…471
10.7.2 Redis替代文件存儲Session472
10.8 深入了解Redis內核475
10.8.1 內存淘汰475
10.8.2 對象引用計數器477
10.8.3 自動關閉超時連接479
10.8.4 清除過期數據481
10.9 本章小結482
第11章 高性能網站架構方案483
11.1 如何優化網站響應時間483
11.1.1 吞吐率484
11.1.2 壓力測試485
11.1.3 持久連接487
11.2 MySQL響應速度提高方案:HandlerSocket491
11.2.1 HandlerSocket工作原理491
11.2.2 HandlerSocket安裝和配置491
11.2.3 PHP-HandlerSocket性能測試493
11.3 MySQL穩定性提高方案:主從復制494
11.3.1 主從復制工作原理494
11.3.2 主從復制配置495
11.3.3 連接主從服務器497
11.4 Web應用加速方案:Varnish…499
11.4.1 傳統代理與反向代理499
11.4.2 Varnish安裝和配置500
11.4.3 Varnish性能測試501
11.4.4 修改緩存規則503
11.4.5 監控Varnish運行狀態…505
11.5 異步計算方案:Gearman506
11.5.1 Gearman工作原理506
11.5.2 安裝Gearman和PHP擴展508
11.5.3 使用Gearman異步發送郵件508
11.6 本章小結510
第12章 代碼調試和測試511
12.1 調試PHP代碼511
12.1.1 PHP調試函數511
12.1.2 斷點調試與變量跟蹤工具Xdebug515
12.1.3 phpdbg的使用介紹518
12.1.4 使用strace來跟蹤定位PHP程序520
12.2 前端調試525
12.2.1 Firebug調試API525
12.2.2 使用Firebug調試DOM結構527
12.2.3 使用Firebug進行遠程調試528
12.3 日志管理530
12.3.1 PHP日志531
12.3.2 Apache/Nginx服務器日志531
12.3.3 MySQL日志534
12.4 代碼性能測試技術537
12.4.1 時間點測試537
12.4.2 文件查看工具WinCache-Grind538
12.4.3 性能測試注意事項540
12.5 單元測試541
12.5.1 單元測試框架PHPUnit的安裝541
12.5.2 初步使用PHPUnit進行單元測試542
12.5.3 PHPUnit中的斷言函數…544
12.5.4 PHPUnit常用模板方法…548
12.5.5 PHPUnit常用注解549
12.6 壓力測試551
12.6.1 使用JMeter壓力測試HTTP551
12.6.2 壓力測試MySQL554
12.6.3 JMeter+Badboy組合測試557
12.7 本章小結559
第13章 Hash算法與數據庫實現…560
13.1 Hash函數560
13.2 Hash算法560
13.2.1 直接取余法560
13.2.2 乘積取整法561
13.2.3 經典Hash算法Times33…561
13.3 Hash表561
13.3.1 Hash表結構562
13.3.2 使用PHP實現Hash表…562
13.3.3 Hash表沖突564
13.3.4 拉鏈法解決沖突564
13.4 一個小型數據庫的實現567
13.4.1 pack函數的用法567
13.4.2 unpack函數的用法569
13.4.3 索引文件和數據文件570
13.4.4 數據庫接口方法571
13.4.5 源代碼解析572
13.4.6 測試代碼580
13.5 本章小結581
序: