《PHP 7 編程實戰》一書原作者Doug Bierer(道格·比爾),中文版由蘇寶龍譯,電子工業出版社2017年10月出版
內容提要
Web網站的專門化和多元化發展趨勢,要求網頁程式語言必須滿足編寫出運行速度快、節省資源且具有較高安全性動態網頁的需求。《PHP 7 編程實戰》介紹的PHP 7網頁程式語言就是其中的佼佼者。
《PHP 7 編程實戰》由13章構成,詳細介紹了PHP 7的新增功能和中高級PHP技術,包括安裝和配置PHP 7開發環境的入門知識、PHP 7的新增功能、PHP中的函式式編程功能、PHP面向對象編程功能的基礎知識、使用命名空間和特性(trait)的方式、從資料庫讀取數據和向資料庫中寫入數據的方式、創建HTML表單元素的類的方式、過濾與驗證數據的方式、實現SOAP和REST客戶端與伺服器的手段、PHP最新的國際化網頁功能、遵循PSR-7編程規範編寫中間件的方式、使用PHP實現高級算法(如鍊表、冒泡排序程式、堆疊和二分查找程尋捉慨序)的方式、軟體設計模式、當前網際網路中常見的攻擊手段和相應的防護手段、加密/解密技術,以及可幫助你編寫出優質代碼的最佳編程習慣和調試技巧。此外,附錄還介紹了PSR-7編程規範。
目錄
第1章基礎知識 1
本章主要內容簡介 1
安協試裝PHP 7的注意事項 1
內置PHP Web伺服器的使用方法 6
定義用於測試的MySQL資料庫 7
安裝PHPUnit 8
實現類自動載入 9
掃描網站 12
創建深層次的網頁掃描器 16
創建將PHP 5代碼轉換為PHP 7代碼的代碼轉換器 18
第2章PHP 7中的高效功能 25
本章主要內容簡介 25
了解抽象語法樹 26
了解語法分析中的差異 30
了解foreach()處理恥習駝凳過程中的差異 32
使用PHP 7中的增強功能提高性能 36
遍歷含有大量數據的檔案 40
將電子表格上傳到資料庫中 43
遞歸式目錄疊代器 46
第3章PHP中的函式式編程功能 51
本章主要內容簡介 51
開發函式 51
提示數據類型 55
設定函式返回值的數據類型 60
使用疊代器 64
使用生成器編寫自己的疊代器 73
第4章PHP中的面向對象編程功能 77
本章主要內容簡介 77
開發類 77
擴展類 85
使用靜態屬性和方法 93
使用命名空間 97
定義可見性 102
使用接口 106
使用特性 112
實現匿名類 119
第5章與資料庫進行互動 125
本章主要內容簡介 125
使用PDO連線資料庫 125
創建OOP式的SQL語句生成器 139
處理分頁 142
定義與資料庫表匹配的實體 147
將實體類的數據類型設定為汗禁蘭腳與RDBMS查詢操作匹配的數據類型 152
在查詢結果中嵌入二次查詢操作 160
實現jQuery DataTables外掛程式的PHP查詢 164
第6章創建可伸縮的和堡促網站 169
本章主要內容簡介 169
創建通用表單元素生成器 169
創建HTML radio元素生成器 177
創建HTML select元素生成器 181
實現表單工廠 186
關聯$_POST過濾器 192
關聯$_POST驗證器 206
將驗證操作與表單關聯起來 212
第7章訪問Web服務 219
本章主要內容簡介 219
在PHP和XML之間轉換 219
創建簡單的REST客戶端 223
創建簡單的REST伺服器 234
創建簡單的SOAP客戶端 243
創建簡單的SOAP伺服器 247
第8章使用date/time數據類型和國際化功能 253
本章主要內容簡介 253
在查看腳本中使用表情圖示或表情符號 253
轉換複雜的字元 256
通過瀏覽才滲想器數據獲取用戶所在地信息 258
根據用戶所在地使用適當的格式顯示數字 262
根據用戶滲鑽永所在地處理貨幣數據 266
根據用戶所在地對日期/時間(date/time)數據類型進行格式化處理 272
創建HTML式的國際化日曆生成器 277
創建循環事件生成器 286
在不使用gettext工具集的情況下處理翻譯工作 294
第9章開發中間件 304
本章主要內容簡介 304
通過中間件執行驗證操作 304
使用中間件實現訪問控制 311
使用快取提高性能 319
實現路由功能 332
實現框架系統間的相互調用 338
使用中間件實現跨程式語言功能 347
第10章高級算法 351
本章主要內容簡介 351
使用讀取器和設定器 351
實現鍊表 358
編寫冒泡排序程式 363
實現堆疊 366
創建實現二分查找操作的類 369
實現搜尋引擎 373
顯示多維數組和累加合計 380
第11章實現多種軟體設計模式 388
本章主要內容簡介 388
創建數組至對象水合器(array to object hydrator) 389
創建對象至數組水合器(object to array hydrator) 391
實現策略模式 393
定義映射器 404
實現對象關聯映射功能 414
實現發布/訂閱設計模式 426
第12章提高網頁的安全性 433
本章主要內容簡介 433
過濾通過$_POST變數獲得的數據 433
驗證通過$_POST變數獲得的數據 438
為PHP會話提供安全防護 441
通過令牌提高表單的安全性 448
創建具有較高安全性的密碼生成器 454
通過驗證碼為表單提供安全防護 459
在不使用mcrypt加密擴展庫的情況下實現加密/解密功能 474
第13章最佳編程習慣、測試和調試 480
本章主要內容簡介 480
使用特性和接口 480
通用異常處理程式 486
通用錯誤處理程式 490
編寫簡單測試 494
編寫測試套件 514
生成模擬測試數據 517
使用session_start參數自定義會話 530
附錄定義PSR-7類 535
本附錄主要內容簡介 535
實現PSR-7值對象類 535
開發PSR-7請求類 556
定義PSR-7回應類 571
將實體類的數據類型設定為與RDBMS查詢操作匹配的數據類型 152
在查詢結果中嵌入二次查詢操作 160
實現jQuery DataTables外掛程式的PHP查詢 164
第6章創建可伸縮的網站 169
本章主要內容簡介 169
創建通用表單元素生成器 169
創建HTML radio元素生成器 177
創建HTML select元素生成器 181
實現表單工廠 186
關聯$_POST過濾器 192
關聯$_POST驗證器 206
將驗證操作與表單關聯起來 212
第7章訪問Web服務 219
本章主要內容簡介 219
在PHP和XML之間轉換 219
創建簡單的REST客戶端 223
創建簡單的REST伺服器 234
創建簡單的SOAP客戶端 243
創建簡單的SOAP伺服器 247
第8章使用date/time數據類型和國際化功能 253
本章主要內容簡介 253
在查看腳本中使用表情圖示或表情符號 253
轉換複雜的字元 256
通過瀏覽器數據獲取用戶所在地信息 258
根據用戶所在地使用適當的格式顯示數字 262
根據用戶所在地處理貨幣數據 266
根據用戶所在地對日期/時間(date/time)數據類型進行格式化處理 272
創建HTML式的國際化日曆生成器 277
創建循環事件生成器 286
在不使用gettext工具集的情況下處理翻譯工作 294
第9章開發中間件 304
本章主要內容簡介 304
通過中間件執行驗證操作 304
使用中間件實現訪問控制 311
使用快取提高性能 319
實現路由功能 332
實現框架系統間的相互調用 338
使用中間件實現跨程式語言功能 347
第10章高級算法 351
本章主要內容簡介 351
使用讀取器和設定器 351
實現鍊表 358
編寫冒泡排序程式 363
實現堆疊 366
創建實現二分查找操作的類 369
實現搜尋引擎 373
顯示多維數組和累加合計 380
第11章實現多種軟體設計模式 388
本章主要內容簡介 388
創建數組至對象水合器(array to object hydrator) 389
創建對象至數組水合器(object to array hydrator) 391
實現策略模式 393
定義映射器 404
實現對象關聯映射功能 414
實現發布/訂閱設計模式 426
第12章提高網頁的安全性 433
本章主要內容簡介 433
過濾通過$_POST變數獲得的數據 433
驗證通過$_POST變數獲得的數據 438
為PHP會話提供安全防護 441
通過令牌提高表單的安全性 448
創建具有較高安全性的密碼生成器 454
通過驗證碼為表單提供安全防護 459
在不使用mcrypt加密擴展庫的情況下實現加密/解密功能 474
第13章最佳編程習慣、測試和調試 480
本章主要內容簡介 480
使用特性和接口 480
通用異常處理程式 486
通用錯誤處理程式 490
編寫簡單測試 494
編寫測試套件 514
生成模擬測試數據 517
使用session_start參數自定義會話 530
附錄定義PSR-7類 535
本附錄主要內容簡介 535
實現PSR-7值對象類 535
開發PSR-7請求類 556
定義PSR-7回應類 571