出版時間:2012-11-1 出版社:機械工業(yè)出版社 作者:Lorna Mitchell,Davey Shafik,Matthew Turland 頁數(shù):238 譯者:彭沖,胡琳
Tag標簽:無
內(nèi)容概要
本書是資深PHP技術(shù)專家多年工作經(jīng)驗的結(jié)晶,從數(shù)據(jù)庫、API、設(shè)計模式、安全性、應(yīng)用程序性能、自動化測試、質(zhì)量保證等核心方面總結(jié)了編寫高效PHP代碼的技巧和最佳實踐,旨在讓有一定基礎(chǔ)的PHP開發(fā)者在進階修煉的路上盡可能少走彎路!全書包含大量精心設(shè)計的示例,不僅能幫助讀者理解具體的技術(shù)知識,而且能讓讀者學到作者解決各種問題的思路,授人以魚同時授人以漁。
本書共8章,每章一個主題:第1章重新闡述了面向?qū)ο缶幊讨械暮诵母拍詈图夹g(shù),目的是確?;A(chǔ)知識匱乏的開發(fā)者能正確理解它們;第2章總結(jié)了PHP開發(fā)中與數(shù)據(jù)庫相關(guān)的各種最佳實踐,如數(shù)據(jù)持久化、數(shù)據(jù)存儲、MySQL使用方法、PDO,以及數(shù)據(jù)庫的設(shè)計等;第3章詳細講解了API及其使用方式;第4章總結(jié)了PHP開發(fā)中常用的各種設(shè)計模式及其使用原則;第5章講解了如何編寫安全的PHP代碼,對PHP開發(fā)中各種常見的安全問題進行了總結(jié)和分析;第6章從基準測試、系統(tǒng)測試、數(shù)據(jù)庫、文件系統(tǒng)等方面探討了PHP應(yīng)用程序的性能問題;第7章講解了PHP的自動化測試,包含單元測試、數(shù)據(jù)庫測試、負載均衡測試等;第8章總結(jié)了PHP開發(fā)中與質(zhì)量保證相關(guān)的最佳實踐,包括質(zhì)量測量、編碼標準、源代碼管理、自動部署等。除此之外,本書還對PEAR、PECL,以及PHP標準庫進行了講解。
作者簡介
Lorna Mitchell
資深PHP技術(shù)專家,常駐英國利茲的PHP顧問,從事軟件開發(fā)相關(guān)工作多年,尤其擅長與數(shù)據(jù)和API相關(guān)的知識?;钴S于PHP社區(qū),是美國西北部PHP技術(shù)社群的組織者,曾組織過多次社團會議并發(fā)表演講,是開源項目Joind.in的領(lǐng)導者。她還是一位技術(shù)作家,熱衷于分享自己的經(jīng)驗,經(jīng)常在多種流行雜志和網(wǎng)站上發(fā)表技術(shù)文章。
Davey Shafik
資深LAMP技術(shù)專家,精通PHP,在HTML、CSS、JavaScript等Web相關(guān)技術(shù)領(lǐng)域也積累了十分豐富的經(jīng)驗。他還是一位經(jīng)驗豐富的技術(shù)作家,不僅發(fā)表了大量的技術(shù)文章,而且著有《The
PHP Anthology: 101 Essential Tips, Tricks & Hacks》和《PHP
Architect’s Zend PHP 5 Certification Study Guide》等著作。
Matthew Turland
資深PHP技術(shù)專家,有近10年P(guān)HP開發(fā)經(jīng)驗,是PHP 5和Zend
Framework的Zend認證工程師。他是Zend Framework、
PHPUnit和Phergie等PHP開源項目的參與者,為這些項目撰寫了大量文章。他還是一位經(jīng)驗豐富的技術(shù)作家,不僅撰寫了《PHP
Architect’s Guide to Web Scraping with PHP》等著作,而且還在《PHP
Architect》等雜志上發(fā)表了大量文章。
書籍目錄
目錄
譯者序
前 言
第1章 面向?qū)ο缶幊?
1.1 為什么要使用面向?qū)ο缶幊?
1.2 OOP簡介1
1.2.1 聲明類1
1.2.2 類的構(gòu)造2
1.2.3 對象實例化3
1.2.4 自動加載3
1.2.5 使用對象4
1.2.6 使用靜態(tài)屬性和方法4
1.2.7 對象和命名空間5
1.3 對象的繼承7
1.4 對象和函數(shù)9
1.4.1 類型提示9
1.4.2 多態(tài)性9
1.4.3 對象和引用10
1.4.4 作為函數(shù)參數(shù)傳遞的對象11
1.4.5 流暢的接口12
1.5 public、private以及protected12
1.5.1 public13
1.5.2 private13
1.5.3 protected13
1.5.4 選擇正確的可見性14
1.5.5 使用getter和setter來控制可見性14
1.5.6 使用神奇的_get和_set方法15
1.6 接口16
1.6.1 SPL Countable接口示例16
1.6.2 計數(shù)對象16
1.6.3 聲明和使用接口17
1.6.4 識別對象和接口17
1.7 異常18
1.7.1 處理異常18
1.7.2 為什么要處理異常19
1.7.3 拋出異常19
1.7.4 擴展異常19
1.7.5 捕捉特定類型的異常20
1.7.6 設(shè)定一個全局異常處理程序21
1.7.7 使用回調(diào)22
1.8 更多神奇的方法22
1.8.1 使用__call()和__callStatic()方法22
1.8.2 使用__toString()方法輸出對象23
1.8.3 序列化對象24
1.9 本章小結(jié)25
第2章 數(shù)據(jù)庫26
2.1 數(shù)據(jù)持久化和Web應(yīng)用程序26
2.2 選擇如何存儲數(shù)據(jù)26
2.3 用MySQL建立一個食譜網(wǎng)站27
2.4 PHP數(shù)據(jù)庫對象29
2.4.1 使用PDO連接到MySQL29
2.4.2 從表中選擇數(shù)據(jù)30
2.4.3 數(shù)據(jù)提取模式30
2.4.4 參數(shù)和預(yù)處理語句31
2.4.5 綁定值和預(yù)處理語句的變量32
2.4.6 插入一行并獲取ID34
2.4.7 有多少行被插入、更新或刪除34
2.4.8 刪除數(shù)據(jù)35
2.5 處理PDO中的錯誤35
2.5.1 處理預(yù)處理時的問題36
2.5.2 處理執(zhí)行時的問題36
2.5.3 處理提取數(shù)據(jù)時的問題37
2.6 高級PDO特征37
2.6.1 事務(wù)和PDO38
2.6.2 存儲過程和PDO39
2.7 設(shè)計數(shù)據(jù)庫39
2.7.1 主鍵與索引40
2.7.2 MySQL解析40
2.7.3 內(nèi)部連接43
2.7.4 外部連接43
2.7.5 聚合函數(shù)和Group By44
2.7.6 規(guī)格化數(shù)據(jù)46
2.8 數(shù)據(jù)庫—排序46
第3章 API47
3.1 開始之前47
3.1.1 使用API工具47
3.1.2 添加API到你的系統(tǒng)47
3.2 面向服務(wù)的架構(gòu)47
3.3 數(shù)據(jù)格式48
3.3.1 使用JSON49
3.3.2 使用XML50
3.4 HTTP:超文本傳輸協(xié)議53
3.4.1 HTTP信封53
3.4.2 發(fā)送HTTP請求54
3.4.3 HTTP狀態(tài)碼57
3.4.4 HTTP文件頭58
3.4.5 HTTP動詞61
3.5 理解并選擇服務(wù)類型61
3.5.1 PHP和SOAP62
3.5.2 使用WSDL描述SOAP服務(wù)63
3.6 調(diào)試HTTP65
3.6.1 使用日志收集信息65
3.6.2 檢查HTTP流量65
3.7 RPC服務(wù)66
3.7.1 使用一個RPC服務(wù):Flickr示例66
3.7.2 建立一個RPC服務(wù)68
3.8 Ajax和Web服務(wù)69
3.9 開發(fā)和使用RESTful服務(wù)75
3.9.1 超越Pretty URL75
3.9.2 RESTful原則76
3.9.3 建立一個RESTful服務(wù)76
3.10 設(shè)計一個Web服務(wù)82
3.11 提供的服務(wù)83
第4章 設(shè)計模式84
4.1 什么是設(shè)計模式84
4.1.1 選擇一個最合適的84
4.1.2 單例模式84
4.1.3 Traits86
4.1.4 注冊表模式87
4.1.5 工廠模式90
4.1.6 迭代模式91
4.1.7 觀察者模式98
4.1.8 依賴注入101
4.1.9 模型–視圖–控制器104
4.2 模式的形成114
第5章 安全性115
5.1 是否有些偏執(zhí)115
5.2 過濾輸入、避免輸出116
5.3 跨站腳本117
5.3.1 攻擊117
5.3.2 修復118
5.3.3 在線資源119
5.4 偽造跨站請求119
5.4.1 攻擊119
5.4.2 修復120
5.4.3 在線資源121
5.5 會話固定122
5.5.1 攻擊122
5.5.2 修復122
5.5.3 在線資源123
5.6 會話劫持123
5.6.1 攻擊123
5.6.2 修復124
5.6.3 在線資源125
5.7 SQL注入125
5.7.1 攻擊125
5.7.2 修復126
5.7.3 在線資源127
5.8 儲存密碼127
5.8.1 攻擊127
5.8.2 修復127
5.8.3 在線資源128
5.9 暴力破解攻擊129
5.9.1 攻擊129
5.9.2 修復130
5.9.3 在線資源131
5.10 SSL131
5.10.1 攻擊131
5.10.2 修復132
5.10.3 在線資源132
5.11 資源132
第6章 性能134
6.1 基準測試134
6.2 系統(tǒng)測試139
6.2.1 代碼緩存139
6.2.2 INI設(shè)置143
6.3 數(shù)據(jù)庫144
6.4 文件系統(tǒng)144
6.5 程序概要分析151
6.5.1 安裝XHProf152
6.5.2 安裝XHGui155
6.6 本章小結(jié)161
第7章 自動測試163
7.1 單元測試163
7.1.1 安裝PHPUnit163
7.1.2 編寫測試用例163
7.1.3 運行測試165
7.1.4 測試替身167
7.1.5 編寫可測試的代碼170
7.1.6 測試視圖和控制器173
7.2 數(shù)據(jù)庫測試177
7.2.1 數(shù)據(jù)庫測試用例177
7.2.2 連接178
7.2.3 數(shù)據(jù)集178
7.2.4 斷言180
7.3 系統(tǒng)測試181
7.3.1 初始設(shè)置181
7.3.2 命令182
7.3.3 定位器183
7.3.4 斷言184
7.3.5 數(shù)據(jù)庫集成184
7.3.6 調(diào)試186
7.3.7 自動編寫測試187
7.4 負載測試187
7.4.1 ab187
7.4.2 Siege188
7.5 本章小結(jié)189
第8章 質(zhì)量保證190
8.1 使用靜態(tài)分析工具測量質(zhì)量190
8.1.1 phploc190
8.1.2 phpcpd191
8.1.3 phpmd192
8.2 編碼標準193
8.2.1 使用PHP代碼探測器檢查編碼標準193
8.2.2 查看違反編碼標準的地方195
8.2.3 PHP代碼探測器標準196
8.3 文檔和代碼196
8.3.1 使用phpDocumentor197
8.3.2 其他文檔工具199
8.4 源代碼管理199
8.4.1 使用集中式版本控制200
8.4.2 為了源代碼管理使用版本控制201
8.4.3 設(shè)計版本庫的結(jié)構(gòu)202
8.4.4 分布式的版本控制204
8.4.5 代碼的社會性工具205
8.4.6 使用Git進行源代碼控制206
8.4.7 將版本庫作為構(gòu)建過程的根207
8.5 自動部署207
8.5.1 立刻切換到一個新版本208
8.5.2 管理數(shù)據(jù)庫變更208
8.5.3 自動部署和Phing209
8.6 準備部署211
附錄A PEAR和PECL212
附錄B PHP標準庫229
附錄C 進一步參考信息236
編輯推薦
《華章程序員書庫·PHP精粹:編寫高效PHP代碼》與市面上已有的其他同類書區(qū)別在于,它并沒有系統(tǒng)地講解PHP開發(fā)的所有知識點,而是選取了數(shù)據(jù)庫、API、設(shè)計模式、安全性、應(yīng)用程序性能、自動化測試、質(zhì)量保證等專題知識來深入剖析和講解,這些知識是正在進階路上的PHP程序員需要重點掌握的。作者把自己多年在實際開發(fā)中總結(jié)出來的經(jīng)驗和最佳實踐都融入了這本書,旨在讓想提高開發(fā)水平的PHP工程師在學習和工作中少走彎路,能為他們編寫高效的PHP代碼提供有效的指導!
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載