-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
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 面向對象 模式與實踐 第5版

( 簡體 字)
作者:[英] 馬特·贊德斯徹(Matt Zandstra)類別:1. -> 程式設計 -> 網路編程 -> PHP
譯者:
出版社:人民郵電出版社深入PHP 面向對象 模式與實踐 第5版 3dWoo書號: 51328
詢問書籍請說出此書號!

缺書
NT售價: 645

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

譯者序:

前言:

內容簡介:

本書是PHP經典圖書升級版,它既是一本關于面向對象設計與編程的書,也是一本關于如何使用工具管理PHP代碼(從協作到部署)的書。書中講解了PHP的新特性,例如匿名類以及標量參數提示和返回值類型。第5版重寫了Composer和Packagist庫的相關內容,并增加了關于Git版本控制的篇幅。示例代碼全面更新,符合PSR-1和PSR-2標準。閱讀本書能夠幫你構建實現既定目標且易于協同開發的系統,并讓你的代碼優雅、簡潔且易于理解。
目錄:

第 一部分 對象
第 1章 PHP:設計和管理 2
1.1 問題 2
1.2 PHP與其他語言 3
1.3 關于本書 5
1.3.1 對象 5
1.3.2 模式 6
1.3.3 實踐 6
1.3.4 第5版新增內容 7
1.4 小結 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 擁護和顧慮:關于對象的爭辯 12
2.3 小結 13
第3章 對象基礎 14
3.1 類和對象 14
3.1.1 第 一個類 14
3.1.2 一個(或兩個)對象 15
3.2 設置類中的屬性 16
3.3 使用方法 18
3.4 參數和類型 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 小結 43
第4章 高級特性 44
4.1 靜態方法和屬性 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中使用靜態方法. 58
4.5.8 訪問宿主類的屬性 59
4.5.9 在trait中定義抽象方法 59
4.5.10 改變trait中方法的訪問權限 60
4.6 延遲靜態綁定:static關鍵字 61
4.7 錯誤處理 65
4.8 final類和方法 73
4.9 內部錯誤類 74
4.10 使用攔截器 75
4.11 定義析構方法 81
4.12 使用__clone()復制對象 82
4.13 定義對象的字符串值 85
4.14 回調、匿名函數和閉包 86
4.15 匿名類 90
4.16 小結 92
第5章 對象工具 93
5.1 PHP和包 93
5.1.1 PHP包和命名空間 93
5.1.2 自動加載 101
5.2 類函數和對象函數 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 方法調用 111
5.3 反射API 112
5.3.1 入門 112
5.3.2 是時候大干一場了 113
5.3.3 檢查類 115
5.3.4 檢查方法 117
5.3.5 檢查方法參數 118
5.3.6 使用反射API 120
5.4 小結 123
第6章 對象與設計 124
6.1 定義代碼設計 124
6.2 面向對象編程與面向過程編程 125
6.2.1 職責 129
6.2.2 內聚 129
6.2.3 耦合 129
6.2.4 正交 129
6.3 選擇類 130
6.4 多態 131
6.5 封裝 132
6.6 忘記細節 133
6.7 四個方向標 133
6.7.1 代碼重復 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 小結 142
第二部分 模式
第7章 什么是設計模式,為什么要使用設計模式 144
7.1 什么是設計模式 144
7.2 設計模式概要 146
7.2.1 名稱 146
7.2.2 問題 146
7.2.3 解決方案 147
7.2.4 效果 147
7.3 《設計模式》的格式 147
7.4 為什么使用設計模式 148
7.4.1 設計模式定義了問題 148
7.4.2 設計模式定義了解決方案 148
7.4.3 設計模式與編程語言無關 148
7.4.4 模式定義了一組詞匯 148
7.4.5 模式是經過測試的 149
7.4.6 模式為協作而設計 149
7.4.7 設計模式促進優秀設計 149
7.4.8 流行的框架都使用了設計模式 150
7.5 PHP與設計模式 150
7.6 小結 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 針對接口編程,而不是針對實現編程 161
8.5 概念在變化 162
8.6 不要盲從模式 162
8.7 模式 163
8.7.1 用于生成對象的模式 163
8.7.2 用于組織對象和類的模式 163
8.7.3 面向任務的模式 163
8.7.4 企業設計模式 163
8.7.5 數據庫模式 163
8.8 小結 163
第9章 生成對象 164
9.1 生成對象的問題和解決方案 164
9.2 單例模式 168
9.2.1 問題 169
9.2.2 實現 169
9.2.3 效果 171
9.3 工廠方法模式 172
9.3.1 問題 172
9.3.2 實現 175
9.3.3 效果 177
9.4 抽象工廠模式 177
9.4.1 問題 177
9.4.2 實現 178
9.4.3 效果 180
9.5 原型模式 181
9.5.1 問題 182
9.5.2 實現 183
9.6 推向邊緣:服務定位器 186
9.7 完全隔離:依賴注入 187
9.7.1 問題 187
9.7.2 實現 188
9.7.3 效果 191
9.8 小結 191
第 10章 使面向對象編程更加靈活的模式 192
10.1 構造可靈活創建對象的類 192
10.2 組合模式 192
10.2.1 問題 193
10.2.2 實現 195
10.2.3 效果 199
10.2.4 組合模式小結 202
10.3 裝飾器模式 202
10.3.1 問題 202
10.3.2 實現 205
10.3.3 效果 209
10.4 外觀模式 209
10.4.1 問題 209
10.4.2 實現 211
10.4.3 效果 211
10.5 小結 212
第 11章 執行及描述任務 213
11.1 解釋器模式 213
11.1.1 問題 213
11.1.2 實現 214
11.1.3 解釋器模式的問題 222
11.2 策略模式 222
11.2.1 問題 222
11.2.2 實現 223
11.3 觀察者模式 227
11.4 訪問者模式 235
11.4.1 問題 235
11.4.2 實現 236
11.4.3 訪問者模式的問題 241
11.5 命令模式 242
11.5.1 問題 242
11.5.2 實現 242
11.6 空對象模式 247
11.6.1 問題 247
11.6.2 實現 249
11.7 小結 251
第 12章 企業設計模式 252
12.1 架構概述 252
12.1.1 模式 252
12.1.2 應用與分層 253
12.2 企業架構外的基礎模式 255
12.2.1 注冊表 255
12.2.2 實現 256
12.2.3 效果 260
12.3 表示層 260
12.3.1 前端控制器 261
12.3.2 應用控制器 271
12.3.3 頁面控制器 283
12.3.4 模板視圖和視圖助手 288
12.4 業務邏輯層 291
12.4.1 事務腳本 291
12.4.2 領域模型 295
12.5 小結 298
第 13章 數據庫設計模式 299
13.1 數據層 299
13.2 數據映射器 299
13.2.1 問題 300
13.2.2 實現 300
13.2.3 效果 313
13.3 標識映射 315
13.3.1 問題 315
13.3.2 實現 315
13.3.3 效果 318
13.4 工作單元 319
13.4.1 問題 319
13.4.2 實現 319
13.4.3 效果 323
13.5 延遲加載 323
13.5.1 問題 323
13.5.2 實現 324
13.5.3 效果 326
13.6 領域對象工廠 326
13.6.1 問題 326
13.6.2 實現 326
13.6.3 效果 327
13.7 標識對象 329
13.7.1 問題 329
13.7.2 實現 330
13.7.3 效果 335
13.8 選擇工廠與更新工廠模式 335
13.8.1 問題 336
13.8.2 實現 336
13.8.3 效果 340
13.9 現在映射器中還剩下什么 340
13.10 小結 342
第三部分 實踐
第 14章 優秀(以及糟糕)的實踐 346
14.1 超越代碼 346
14.2 借輪子 347
14.3 合作愉快 348
14.4 為代碼插上翅膀 349
14.5 標準 350
14.6 Vagrant 350
14.7 測試 351
14.8 持續集成 351
14.9 小結 352
第 15章 PHP標準 353
15.1 為什么需要標準 353
15.2 什么是PSR 354
15.2.1 為什么選擇PSR 354
15.2.2 哪些人需要PSR 355
15.3 編碼風格 355
15.3.1 PSR-1基礎編碼規范 356
15.3.2 PSR-2編碼風格規范 358
15.3.3 檢查和修改代碼 360
15.4 PSR-4自動加載規范 362
15.5 小結 365
第 16章 通過Composer使用和創建組件 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 創建自己的包 371
16.5.1 添加包信息 371
16.5.2 平臺軟件包 372
16.6 通過Packagist分發包 373
16.7 私有包 376
16.8 小結 377
第 17章 用Git進行版本控制 378
17.1 為什么進行版本控制 378
17.2 安裝Git 379
17.3 使用在線Git代碼庫 380
17.4 配置Git服務器 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 標記一次發布 392
17.9 創建分支 393
17.10 小結 398
第 18章 使用PHPUnit進行測試 399
18.1 功能測試與單元測試 399
18.2 手動測試 400
18.3 引入PHPUnit 402
18.3.1 創建測試用例 402
18.3.2 斷言方法 405
18.3.3 測試異常 406
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 為測試重構Web應用 415
18.4.2 簡單的Web測試 417
18.4.3 引入Selenium 419
18.5 警告 424
18.6 小結 426
第 19章 使用Phing進行自動化構建 427
19.1 Phing是什么 427
19.2 獲取和安裝Phing 428
19.3 編寫構建文檔 428
19.3.1 目標 430
19.3.2 屬性 432
19.3.3 類型 438
19.3.4 任務 443
19.4 小結 446
第 20章 Vagrant 447
20.1 問題 447
20.2 設置 448
20.3 掛載本地目錄到Vagrant鏡像 450
20.4 配置 451
20.4.1 設置Web服務器 452
20.4.2 設置MySQL 452
20.4.3 配置主機名 453
20.5 結束語 455
20.6 小結 455
第 21章 持續集成 456
21.1 什么是持續集成 456
21.1.1 準備一個持續集成項目 458
21.1.2 安裝Jenkins插件 467
21.1.3 設置Git公鑰 468
21.1.4 創建新項目 469
21.1.5 運行第 一次構建 472
21.1.6 配置報告 472
21.1.7 觸發構建 474
21.2 小結 476
第 22章 對象、模式和實踐 477
22.1 對象 477
22.1.1 選擇 478
22.1.2 封裝與委托 478
22.1.3 解耦 478
22.1.4 可復用性 479
22.1.5 美學 479
22.2 模式 479
22.2.1 模式給我們帶來了什么 480
22.2.2 模式與設計原則 480
22.3 實踐 482
22.3.1 測試 482
22.3.2 標準 483
22.3.3 版本控制 483
22.3.4 自動構建 483
22.3.5 持續集成 484
22.3.6 我們遺漏了什么 484
22.4 小結 485
附錄A 參考文獻 486
附錄B 一個簡單的解析器 488
序: