目 錄
序
前言
第1章 PHP解惑1
1.1 省略結束標簽的便利性2
1.2 emtpy、isset、is_null的區彆2
1.3 布爾值的正確打開方式3
1.4 變量作用域實踐4
1.5 多維數組排序6
1.6 超級全局數組7
1.7 global關鍵字與global數組的區彆8
1.8 活用靜態變量9
1.9 require、require_once、include、include_once與autoload11
1.10的區彆14
1.11 HereDoc與NowDoc15
1.12 函數傳值與引用16
1.12.1 傳值17
1.12.2 引用17
1.13 避免使用過多參數19
1.13.1 使用數組19
1.13.2 使用對象19
1.14 匿名函數21
1.15 return與exit22
1.16 is_callable()與method_exists()函數22
1.17 執行外部程序25
1.18 安全模式的使用說明26
1.19 提前計算循環長度27
1.20 SQL組閤優化30
1.21 文件處理31
1.22 goto語句:最後的手段35
1.23 利用phar擴展來節省空間36
1.24 手冊上的小瑕疵37
1.25 本章小結38
第2章 深入PHP麵嚮對象39
2.1 PHP與麵嚮對象40
2.2 麵嚮對象的一些概念40
2.3 類和對象41
2.4 使用對象43
2.5 構造方法與析構方法43
2.6 實例與多態45
2.7 類的擴展47
2.8 防止重寫48
2.9 防止被擴展49
2.10 多態性50
2.11 接口50
2.12 抽象類54
2.13 靜態方法和屬性55
2.14 魔術方法57
2.15 命名空間63
2.16 traits66
2.17 本章小結68
第3章 PHP輸齣緩衝區69
3.1 係統緩衝區69
3.2 什麼是PHP輸齣緩衝區70
3.2.1 默認PHP輸齣緩衝區72
3.2.2 消息頭和消息體73
3.2.3 用戶輸齣緩衝區73
3.3 輸齣緩衝區的機製75
3.4 輸齣緩衝區的陷阱77
3.5 輸齣緩衝區實踐78
3.6 輸齣緩衝與靜態頁麵81
3.7 內容壓縮輸齣83
3.8 本章小結84
第4章 PHP緩存技術85
4.1 關於緩存85
4.2 文件緩存與靜態頁麵87
4.3 頁麵靜態化89
4.4 數據級彆緩存91
4.5 OpCode緩存94
4.6 OpCode緩存管理工具100
4.6.1 使用APC101
4.6.2 eAccelerator的安裝配置106
4.6.3 XCache的安裝配置109
4.6.4 使用XCache緩存110
4.6.5 APC、eAccelerator和XCache三者的比較115
4.6.6 用戶級彆緩存117
4.7 使用deflate壓縮頁麵118
4.8 內存數據庫119
4.8.1 關於memcached119
4.8.2 memcached架構121
4.8.3 memcached特性121
4.8.4 memcached緩存策略124
4.8.5 memcached 安裝與配置125
4.8.6 使用memcached做分布式Session128
4.8.7 兩個memcached擴展130
4.8.8 安裝pecl::memcache擴展130
4.8.9 memcached 數據存取方法131
4.9 緩存的陷阱132
4.10 本章小結133
第5章 PHP網絡編程134
5.1 Socket編程134
5.1.1 Socket原理134
5.1.2 Socket函數136
5.1.3 PECL Socket函數庫137
5.1.4 PHP的Socket源碼解析141
5.1.5 創建TCP Socket客戶端143
5.1.6 創建TCP Socket服務器145
5.1.7 創建UDP服務器147
5.1.8 字符流與Socket150
5.1.9 連接SMTP服務器153
5.2 cURL核心技術166
5.2.1 什麼是cURL166
5.2.2 安裝和啓用cURL166
5.2.3 建立cURL的步驟168
5.2.4 PHP cURL選項169
5.2.5 cURL實踐173
5.3 本章小結187
第6章 PHP調優、測試與工具188
6.1 PHP調試189
6.2 語法檢查189
6.3 輸齣調試信息190
6.3.1 使用內部函數調試191
6.3.2 建立堆棧跟蹤195
6.4 活用日誌198
6.5 Xdebug200
6.5.1 安裝Xdebug201
6.5.2 應用Xdebug206
6.5.3 Xdebug帶來的增益207
6.6 本章小結209
第7章 用戶驗證策略210
7.1 數據庫設計210
7.2 HTTP驗證213
7.2.1 用戶名主機名驗證214
7.2.2 HTTP的身份驗證機製215
7.2.3 HTTP基本驗證216
7.2.4 摘要訪問驗證 220
7.3 純PHP驗證231
7.3.1 自定義Session231
7.3.2 構造安全的Cookie237
7.4 訪問控製列錶239
7.5 本章小結241
第8章 深度理解MySQL驅動與存儲引擎242
8.1 MySQL連接驅動庫242
8.2 mysqlnd驅動243
8.3 存儲引擎247
8.3.1 取得存儲引擎信息248
8.3.2 定義存儲引擎248
8.3.3 內置的存儲引擎250
8.4 第三方存儲引擎257
8.5 結閤硬件的引擎258
8.6 MySQL替代品與分支259
8.7 本章小結262
第9章 PHP命令行界麵264
9.1 CLI簡述264
9.1.1 CLI的測試安裝264
9.1.2 CLI的配置參數265
9.2 CLI命令行接口266
9.3 CLI命令選項266
9.4 CLI開發實踐269
9.5 CLI實際應用279
9.6 內置服務器283
9.7 本章小結285
第10章 代碼重構實踐286
10.1 什麼是不良代碼286
10.2 什麼是好代碼287
10.3 如何增加代碼可讀性289
10.3.1 命名方式290
10.3.2 錶達式292
10.3.3 代碼段292
10.4 可擴展性與效率重構293
10.5 模塊化設計294
10.6 封裝與解耦294
10.7 代碼效率295
10.7.1 網絡帶寬的效率296
10.7.2 內存效率低296
10.7.3 程序處理效率低下297
10.8 本章小結298
· · · · · · (
收起)