注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)深入PHP 面向?qū)ο?、模式與實踐(第5版)

深入PHP 面向?qū)ο?、模式與實踐(第5版)

深入PHP 面向?qū)ο?、模式與實踐(第5版)

定 價:¥129.00

作 者: 馬特·贊德斯徹(Matt Zandstra) 著,楊文軒 譯
出版社: 人民郵電出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787115512338 出版時間: 2019-06-01 包裝: 平裝
開本: 16開 頁數(shù): 508 字?jǐn)?shù):  

內(nèi)容簡介

  本書是PHP經(jīng)典圖書升級版,它既是一本關(guān)于面向?qū)ο笤O(shè)計與編程的書,也是一本關(guān)于如何使用工具管理PHP代碼(從協(xié)作到部署)的書。書中講解了PHP的新特性,例如匿名類以及標(biāo)量參數(shù)提示和返回值類型。第5版重寫了Composer和Packagist庫的相關(guān)內(nèi)容,并增加了關(guān)于Git版本控制的篇幅。示例代碼全面更新,符合PSR-1和PSR-2標(biāo)準(zhǔn)。閱讀本書能夠幫你構(gòu)建實現(xiàn)既定目標(biāo)且易于協(xié)同開發(fā)的系統(tǒng),并讓你的代碼優(yōu)雅、簡潔且易于理解。

作者簡介

  馬特·贊德斯徹(Matt Zandstra) 20余年Web開發(fā)經(jīng)驗,曾擔(dān)任Yahoo!公司高級開發(fā)人員,現(xiàn)在是自由顧問和作家,為Linux Magazine、Zend.com、IBM DeveloperWorks和php[architect] Magazine等撰寫過文章。 【譯者簡介】 楊文軒 華中科技大學(xué)碩士,擅長Web開發(fā),有豐富的對日開發(fā)經(jīng)驗?,F(xiàn)任職于日本方正股份有限公司。譯作有《圖解基礎(chǔ)設(shè)施設(shè)計模式》《C++性能優(yōu)化指南》《圖解設(shè)計模式》等。

圖書目錄

第 一部分 對象
第 1章 PHP:設(shè)計和管理 2
1.1 問題 2
1.2 PHP與其他語言 3
1.3 關(guān)于本書 5
1.3.1 對象 5
1.3.2 模式 6
1.3.3 實踐 6
1.3.4 第5版新增內(nèi)容 7
1.4 小結(jié) 8
第 2章 PHP和對象 9
2.1 PHP對象的偶然成功 9
2.1.1 起源:PHP/FI 9
2.1.2 語法糖:PHP 3 9
2.1.3 一場靜悄悄的革命:PHP 4 10
2.1.4 擁抱變化:PHP 5 11
2.1.5 迎頭追趕:PHP 7 12
2.2 擁護和顧慮:關(guān)于對象的爭辯 12
2.3 小結(jié) 13
第3章 對象基礎(chǔ) 14
3.1 類和對象 14
3.1.1 第 一個類 14
3.1.2 一個(或兩個)對象 15
3.2 設(shè)置類中的屬性 16
3.3 使用方法 18
3.4 參數(shù)和類型 21
3.4.1 基本類型 21
3.4.2 接受提示:對象類型 24
3.5 繼承 28
3.5.1 繼承問題 28
3.5.2 使用繼承 33
3.5.3 public、private和protected:管理類的訪問 38
3.6 小結(jié) 43
第4章 高級特性 44
4.1 靜態(tài)方法和屬性 44
4.2 常量屬性 47
4.3 抽象類 48
4.4 接口 50
4.5 trait 52
4.5.1 trait可以解決的問題 52
4.5.2 定義和使用trait 53
4.5.3 使用多個trait 54
4.5.4 組合使用trait與接口 55
4.5.5 通過insteadof管理方法名沖突 56
4.5.6 使用別名重寫trait的方法 57
4.5.7 在trait中使用靜態(tài)方法. 58
4.5.8 訪問宿主類的屬性 59
4.5.9 在trait中定義抽象方法 59
4.5.10 改變trait中方法的訪問權(quán)限 60
4.6 延遲靜態(tài)綁定:static關(guān)鍵字 61
4.7 錯誤處理 65
4.8 final類和方法 73
4.9 內(nèi)部錯誤類 74
4.10 使用攔截器 75
4.11 定義析構(gòu)方法 81
4.12 使用__clone()復(fù)制對象 82
4.13 定義對象的字符串值 85
4.14 回調(diào)、匿名函數(shù)和閉包 86
4.15 匿名類 90
4.16 小結(jié) 92
第5章 對象工具 93
5.1 PHP和包 93
5.1.1 PHP包和命名空間 93
5.1.2 自動加載 101
5.2 類函數(shù)和對象函數(shù) 105
5.2.1 查找類 106
5.2.2 檢查對象或類 106
5.2.3 得到指向類的完全限定的字符串引用 107
5.2.4 檢查方法 108
5.2.5 檢查類屬性 110
5.2.6 檢查繼承 110
5.2.7 方法調(diào)用 111
5.3 反射API 112
5.3.1 入門 112
5.3.2 是時候大干一場了 113
5.3.3 檢查類 115
5.3.4 檢查方法 117
5.3.5 檢查方法參數(shù) 118
5.3.6 使用反射API 120
5.4 小結(jié) 123
第6章 對象與設(shè)計 124
6.1 定義代碼設(shè)計 124
6.2 面向?qū)ο缶幊膛c面向過程編程 125
6.2.1 職責(zé) 129
6.2.2 內(nèi)聚 129
6.2.3 耦合 129
6.2.4 正交 129
6.3 選擇類 130
6.4 多態(tài) 131
6.5 封裝 132
6.6 忘記細(xì)節(jié) 133
6.7 四個方向標(biāo) 133
6.7.1 代碼重復(fù) 134
6.7.2 類知道太多 134
6.7.3 萬能的類 134
6.7.4 條件語句 134
6.8 UML 134
6.8.1 類圖 135
6.8.2 序列圖 140
6.9 小結(jié) 142
第二部分 模式
第7章 什么是設(shè)計模式,為什么要使用設(shè)計模式 144
7.1 什么是設(shè)計模式 144
7.2 設(shè)計模式概要 146
7.2.1 名稱 146
7.2.2 問題 146
7.2.3 解決方案 147
7.2.4 效果 147
7.3 《設(shè)計模式》的格式 147
7.4 為什么使用設(shè)計模式 148
7.4.1 設(shè)計模式定義了問題 148
7.4.2 設(shè)計模式定義了解決方案 148
7.4.3 設(shè)計模式與編程語言無關(guān) 148
7.4.4 模式定義了一組詞匯 148
7.4.5 模式是經(jīng)過測試的 149
7.4.6 模式為協(xié)作而設(shè)計 149
7.4.7 設(shè)計模式促進優(yōu)秀設(shè)計 149
7.4.8 流行的框架都使用了設(shè)計模式 150
7.5 PHP與設(shè)計模式 150
7.6 小結(jié) 150
第8章 一些模式原則 151
8.1 模式的啟示 151
8.2 組合與繼承 152
8.2.1 問題 152
8.2.2 使用組合 155
8.3 解耦 157
8.3.1 問題 157
8.3.2 解耦 159
8.4 針對接口編程,而不是針對實現(xiàn)編程 161
8.5 概念在變化 162
8.6 不要盲從模式 162
8.7 模式 163
8.7.1 用于生成對象的模式 163
8.7.2 用于組織對象和類的模式 163
8.7.3 面向任務(wù)的模式 163
8.7.4 企業(yè)設(shè)計模式 163
8.7.5 數(shù)據(jù)庫模式 163
8.8 小結(jié) 163
第9章 生成對象 164
9.1 生成對象的問題和解決方案 164
9.2 單例模式 168
9.2.1 問題 169
9.2.2 實現(xiàn) 169
9.2.3 效果 171
9.3 工廠方法模式 172
9.3.1 問題 172
9.3.2 實現(xiàn) 175
9.3.3 效果 177
9.4 抽象工廠模式 177
9.4.1 問題 177
9.4.2 實現(xiàn) 178
9.4.3 效果 180
9.5 原型模式 181
9.5.1 問題 182
9.5.2 實現(xiàn) 183
9.6 推向邊緣:服務(wù)定位器 186
9.7 完全隔離:依賴注入 187
9.7.1 問題 187
9.7.2 實現(xiàn) 188
9.7.3 效果 191
9.8 小結(jié) 191
第 10章 使面向?qū)ο缶幊谈屿`活的模式 192
10.1 構(gòu)造可靈活創(chuàng)建對象的類 192
10.2 組合模式 192
10.2.1 問題 193
10.2.2 實現(xiàn) 195
10.2.3 效果 199
10.2.4 組合模式小結(jié) 202
10.3 裝飾器模式 202
10.3.1 問題 202
10.3.2 實現(xiàn) 205
10.3.3 效果 209
10.4 外觀模式 209
10.4.1 問題 209
10.4.2 實現(xiàn) 211
10.4.3 效果 211
10.5 小結(jié) 212
第 11章 執(zhí)行及描述任務(wù) 213
11.1 解釋器模式 213
11.1.1 問題 213
11.1.2 實現(xiàn) 214
11.1.3 解釋器模式的問題 222
11.2 策略模式 222
11.2.1 問題 222
11.2.2 實現(xiàn) 223
11.3 觀察者模式 227
11.4 訪問者模式 235
11.4.1 問題 235
11.4.2 實現(xiàn) 236
11.4.3 訪問者模式的問題 241
11.5 命令模式 242
11.5.1 問題 242
11.5.2 實現(xiàn) 242
11.6 空對象模式 247
11.6.1 問題 247
11.6.2 實現(xiàn) 249
11.7 小結(jié) 251
第 12章 企業(yè)設(shè)計模式 252
12.1 架構(gòu)概述 252
12.1.1 模式 252
12.1.2 應(yīng)用與分層 253
12.2 企業(yè)架構(gòu)外的基礎(chǔ)模式 255
12.2.1 注冊表 255
12.2.2 實現(xiàn) 256
12.2.3 效果 260
12.3 表示層 260
12.3.1 前端控制器 261
12.3.2 應(yīng)用控制器 271
12.3.3 頁面控制器 283
12.3.4 模板視圖和視圖助手 288
12.4 業(yè)務(wù)邏輯層 291
12.4.1 事務(wù)腳本 291
12.4.2 領(lǐng)域模型 295
12.5 小結(jié) 298
第 13章 數(shù)據(jù)庫設(shè)計模式 299
13.1 數(shù)據(jù)層 299
13.2 數(shù)據(jù)映射器 299
13.2.1 問題 300
13.2.2 實現(xiàn) 300
13.2.3 效果 313
13.3 標(biāo)識映射 315
13.3.1 問題 315
13.3.2 實現(xiàn) 315
13.3.3 效果 318
13.4 工作單元 319
13.4.1 問題 319
13.4.2 實現(xiàn) 319
13.4.3 效果 323
13.5 延遲加載 323
13.5.1 問題 323
13.5.2 實現(xiàn) 324
13.5.3 效果 326
13.6 領(lǐng)域?qū)ο蠊S 326
13.6.1 問題 326
13.6.2 實現(xiàn) 326
13.6.3 效果 327
13.7 標(biāo)識對象 329
13.7.1 問題 329
13.7.2 實現(xiàn) 330
13.7.3 效果 335
13.8 選擇工廠與更新工廠模式 335
13.8.1 問題 336
13.8.2 實現(xiàn) 336
13.8.3 效果 340
13.9 現(xiàn)在映射器中還剩下什么 340
13.10 小結(jié) 342
第三部分 實踐
第 14章 優(yōu)秀(以及糟糕)的實踐 346
14.1 超越代碼 346
14.2 借輪子 347
14.3 合作愉快 348
14.4 為代碼插上翅膀 349
14.5 標(biāo)準(zhǔn) 350
14.6 Vagrant 350
14.7 測試 351
14.8 持續(xù)集成 351
14.9 小結(jié) 352
第 15章 PHP標(biāo)準(zhǔn) 353
15.1 為什么需要標(biāo)準(zhǔn) 353
15.2 什么是PSR 354
15.2.1 為什么選擇PSR 354
15.2.2 哪些人需要PSR 355
15.3 編碼風(fēng)格 355
15.3.1 PSR-1基礎(chǔ)編碼規(guī)范 356
15.3.2 PSR-2編碼風(fēng)格規(guī)范 358
15.3.3 檢查和修改代碼 360
15.4 PSR-4自動加載規(guī)范 362
15.5 小結(jié) 365
第 16章 通過Composer使用和創(chuàng)建組件 366
16.1 什么是Composer 366
16.2 安裝Composer 367
16.3 安裝一個(組)包 367
16.3.1 通過命令行安裝包 368
16.3.2 版本 368
16.3.3 require-dev元素 369
16.4 Composer與自動加載 370
16.5 創(chuàng)建自己的包 371
16.5.1 添加包信息 371
16.5.2 平臺軟件包 372
16.6 通過Packagist分發(fā)包 373
16.7 私有包 376
16.8 小結(jié) 377
第 17章 用Git進行版本控制 378
17.1 為什么進行版本控制 378
17.2 安裝Git 379
17.3 使用在線Git代碼庫 380
17.4 配置Git服務(wù)器 382
17.5 啟動項目 384
17.6 更新與提交 387
17.7 文件和目錄的添加與移除 390
17.7.1 添加文件 390
17.7.2 刪除文件 390
17.7.3 添加目錄 391
17.7.4 刪除目錄 391
17.8 標(biāo)記一次發(fā)布 392
17.9 創(chuàng)建分支 393
17.10 小結(jié) 398
第 18章 使用PHPUnit進行測試 399
18.1 功能測試與單元測試 399
18.2 手動測試 400
18.3 引入PHPUnit 402
18.3.1 創(chuàng)建測試用例 402
18.3.2 斷言方法 405
18.3.3 測試異?!?06
18.3.4 運行測試套件 407
18.3.5 約束 407
18.3.6 mock和stub 409
18.3.7 失敗是成功之母 412
18.4 編寫Web測試 415
18.4.1 為測試重構(gòu)Web應(yīng)用 415
18.4.2 簡單的Web測試 417
18.4.3 引入Selenium 419
18.5 警告 424
18.6 小結(jié) 426
第 19章 使用Phing進行自動化構(gòu)建 427
19.1 Phing是什么 427
19.2 獲取和安裝Phing 428
19.3 編寫構(gòu)建文檔 428
19.3.1 目標(biāo) 430
19.3.2 屬性 432
19.3.3 類型 438
19.3.4 任務(wù) 443
19.4 小結(jié) 446
第 20章 Vagrant 447
20.1 問題 447
20.2 設(shè)置 448
20.3 掛載本地目錄到Vagrant鏡像 450
20.4 配置 451
20.4.1 設(shè)置Web服務(wù)器 452
20.4.2 設(shè)置MySQL 452
20.4.3 配置主機名 453
20.5 結(jié)束語 455
20.6 小結(jié) 455
第 21章 持續(xù)集成 456
21.1 什么是持續(xù)集成 456
21.1.1 準(zhǔn)備一個持續(xù)集成項目 458
21.1.2 安裝Jenkins插件 467
21.1.3 設(shè)置Git公鑰 468
21.1.4 創(chuàng)建新項目 469
21.1.5 運行第 一次構(gòu)建 472
21.1.6 配置報告 472
21.1.7 觸發(fā)構(gòu)建 474
21.2 小結(jié) 476
第 22章 對象、模式和實踐 477
22.1 對象 477
22.1.1 選擇 478
22.1.2 封裝與委托 478
22.1.3 解耦 478
22.1.4 可復(fù)用性 479
22.1.5 美學(xué) 479
22.2 模式 479
22.2.1 模式給我們帶來了什么 480
22.2.2 模式與設(shè)計原則 480
22.3 實踐 482
22.3.1 測試 482
22.3.2 標(biāo)準(zhǔn) 483
22.3.3 版本控制 483
22.3.4 自動構(gòu)建 483
22.3.5 持續(xù)集成 484
22.3.6 我們遺漏了什么 484
22.4 小結(jié) 485
附錄A 參考文獻(xiàn) 486
附錄B 一個簡單的解析器 488

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號