日韩精品 中文字幕 动漫,91亚洲午夜一区,在线不卡日本v一区v二区丶,久久九九国产精品自在现拍

注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計網(wǎng)絡編程PHP實戰(zhàn)

PHP實戰(zhàn)

PHP實戰(zhàn)

定 價:¥69.00

作 者: (挪)雷勒索,(英)貝克,(美)史夫利特 著,張穎 等譯
出版社: 人民郵電出版社
叢編項: 圖靈程序設計叢書
標 簽: PHP

ISBN: 9787115217455 出版時間: 2010-01-01 包裝: 平裝
開本: 16開 頁數(shù): 428 字數(shù):  

內(nèi)容簡介

  隨著 PHP 5的發(fā)布和 Zend框架項目的應用,PHP和敏捷思想、設計模式以及單元測試的聯(lián)姻成為主流話題?!禤HP實戰(zhàn)》首先介紹了面向?qū)ο笤O計的原則、模式和技巧,然后講述了如何在 PHP上利用其語法和特性,處理和實施這些原則、模式和技巧,并應用于 Web編程中遇到的難題上?!禤HP實戰(zhàn)》適合所有使用 PHP開發(fā) Web應用程序的人員閱讀。

作者簡介

  雷勒索(Dagfinn Reiersφl),資深軟件專家。有10多年的從業(yè)經(jīng)驗,設計并開發(fā)了Web應用程序、Web內(nèi)容挖掘軟件、Web編程工具以及文本分析程序。其中絕大多數(shù)都是運用PHP編寫的。他居住在挪威奧斯陸。貝克(Marcus Baker),資深軟件專家。多年來一直從事面向?qū)ο笤O計和開發(fā)以及Web程序開發(fā)和測試方面的工作。他同時也是PHP Architectecture Magazine的專欄作家。史夫利特(Chris Shiflett),PHP軟件專家、安全專家以及PHP社區(qū)的領軍人物。他是PHP安全協(xié)會的奠基者,著有HTTPDeveloper,S Handbook和Essential PHP Security兩本圖書。

圖書目錄

第一部分 工具和概念
第1章 PHP與現(xiàn)代軟件開發(fā)  2
1.1 PHP的作用  2
1.1.1 PHP流行的原因  3
1.1.2 克服PHP的局限  5
1.2 語言、原則和模式  7
1.2.1 敏捷方法:從蠻干到巧干  7
1.2.2 PHP  5和軟件趨勢  8
1.2.3 面向?qū)ο缶幊踢M化的規(guī)律  8
1.2.4 設計模式  9
1.2.5 重構  10
1.2.6 單元測試和TDD  10
1.3 小結  13
第2章 PHP中的對象  14
2.1 對象基礎  14
2.1.1 為什么將PHP與Java相比較  15
2.1.2 對象和類  15
2.1.3 Hello  world  15
2.1.4 構造函數(shù):創(chuàng)建和初始化對象  16
2.1.5 繼承和關鍵字extends  18
2.1.6 繼承構造函數(shù)  19
2.2 異常處理  20
2.2.1 異常的工作原理  20
2.2.2 何時使用異常與返回代碼  22
2.2.3 創(chuàng)建自己的異常類  23
2.2.4 用異常替換PHP內(nèi)置的嚴重錯誤  24
2.2.5 不要過度使用異?!?24
2.3 PHP 4和PHP 5中的對象引用  24
2.3.1 對象引用的工作原理  25
2.3.2 對象引用的優(yōu)勢  26
2.3.3 引用何時沒有用處  27
2.4 方法調(diào)用的攔截和類的實例化  27
2.4.1 什么是方法重載  27
2.4.2 PHP中的Java式方法重載  27
2.4.3 面向方面的體驗:記錄方法調(diào)用的日志  28
2.4.4 自動加載類  30
2.5 小結  31
第3章 有效使用PHP類  32
3.1 可見性:私有和受保護的方法與變量  32
3.1.1 對方法可見性的要求  33
3.1.2 何時使用私有方法  34
3.1.3 何時使用受保護方法  34
3.1.4 讓實例變量保持private或protected屬性  35
3.1.5 私有變量和受保護變量的存取  36
3.1.6 兩全其美——通過攔截來控制變量  37
3.1.7 final類和方法  38
3.2 沒有對象的類:類方法、類變量和類常量  39
3.2.1 類(靜態(tài))方法  40
3.2.2 何時使用類方法  41
3.2.3 類變量  41
3.2.4 類常量  42
3.2.5 PHP中常量的限制  43
3.3 抽象類和方法(函數(shù))  45
3.3.1 什么是抽象類和方法  45
3.3.2 使用抽象類  45
3.4 類的類型提示  46
3.4.1 類型提示的作用  46
3.4.2 何時使用類型提示  47
3.5 接口  48
3.5.1 什么是接口  49
3.5.2 PHP中需要接口嗎  49
3.5.3 用接口讓設計更清晰  50
3.5.4 用接口改善類的類型提示  50
3.5.5 PHP  5與Java中的接口  51
3.6 小結  52
第4章 理解對象和類  53
4.1 對象和類的優(yōu)點  54
4.1.1 類幫助組織  54
4.1.2 可以告訴對象要做什么  55
4.1.3 多態(tài)性  55
4.1.4 對象讓代碼更易讀  56
4.1.5 類幫助消除重復性代碼  59
4.1.6 可以重用對象和類  60
4.1.7 避免牽一發(fā)而動全身  61
4.1.8 對象提供類型安全  61
4.2 好設計的標準  62
4.2.1 不要混淆結果和含義  64
4.2.2 透明性  64
4.2.3 簡單設計  64
4.2.4 一次并且只有一次  65
4.3 什么是對象  67
4.3.1 對象來自虛構世界  67
4.3.2 域?qū)ο蠡A  68
4.4 小結  70
第5章 理解類關系  71
5.1 繼承  71
5.1.1 將繼承作為思考工具  72
5.1.2 繼承重構  73
5.2 對象組合  77
5.3 接口  79
5.3.1 將接口作為思考工具  79
5.3.2 單繼承和多繼承  80
5.4 優(yōu)先考慮對象組合而不是類繼承  80
5.4.1 避免父類命名含糊  81
5.4.2 避免繼承層次結構過深  81
5.5 小結  82
第6章 面向?qū)ο笤瓌t  83
6.1 原則和模式  84
6.1.1 架構原則或模式  84
6.1.2 了解面向?qū)ο笤瓌t  85
6.2 開放-封閉原則(OCP)  85
6.2.1 初識OCP  85
6.2.2 用類替換的情況  86
6.2.3 OCP在PHP中是如何相關的  88
6.3 單一職責原則(SRP)  88
6.3.1 混合職責:模板引擎  89
6.3.2 一個試驗:分離職責  91
6.3.3 實驗是否成功  93
6.4 依賴倒置原則(DIP)  94
6.4.1 什么是依賴性  94
6.4.2 插入接口  96
6.5 分層設計  96
6.5.1 “三層”模式及其同屬  97
6.5.2 Web應用程序能否有域?qū)印?98
6.6 小結  99
第7章 設計模式  100
7.1 策略模式  101
7.1.1 使用策略模式的“Hello  world”  101
7.1.2 策略模式的用處  103
7.2 適配器模式  104
7.2.1 初學適配器模式  104
7.2.2 讓一個模板引擎與另一個相像  105
7.2.3 具有多個類的適配器模式  106
7.2.4 調(diào)整為通用接口  109
7.3 裝飾器模式  109
7.3.1 資源裝飾器  110
7.3.2 裝飾與再裝飾  111
7.4 空對象模式  113
7.4.1 混合黑暗的燈和明亮的燈  114
7.4.2 空策略對象  114
7.5 迭代器模式  115
7.5.1 迭代器的工作原理  115
7.5.2 使用迭代器的好原因  116
7.5.3 迭代器與普通數(shù)組  116
7.5.4 SPL迭代器  117
7.5.5 SPL如何幫助我們解決迭代器和數(shù)組間的沖突  118
7.6 組合模式  118
7.6.1 用組合模式實現(xiàn)菜單  118
7.6.2 基本理論  120
7.6.3 連貫接口  121
7.6.4 遞歸處理  121
7.6.5 我們的方法低效嗎  123
7.7 小結  123
第8章 設計指南:日期和時間處理  124
8.1 為何日期和時間處理要面向?qū)ο蟆?124
8.1.1 更容易,但并非更簡單  125
8.1.2 面向?qū)ο蟮膬?yōu)勢  125
8.2 找到正確的抽象  126
8.2.1 單個時間表示法:時間點、Instant、DateAndTime  126
8.2.2 不同類別的時間范圍:期間、持續(xù)時間、日期范圍、時間間隔  127
8.3 高級對象構建  128
8.3.1 使用創(chuàng)建方法  128
8.3.2 多個構造函數(shù)  129
8.3.3 使用工廠類  132
8.4 大型結構  133
8.4.1 包的概念  133
8.4.2 命名空間和包  134
8.4.3 PHP缺少命名空間支持  135
8.4.4 處理名稱沖突  135
8.5 使用值對象  140
8.5.1 對象引用帶來的麻煩  141
8.5.2 實現(xiàn)值對象  142
8.5.3 更改不可變的對象  142
8.6 實現(xiàn)基本類  143
8.6.1 DateAndTime  143
8.6.2 屬性和字段  144
8.6.3 期間  149
8.6.4 時間間隔  151
8.7 小結  151
第二部分 測試和重構
第9章 測試驅(qū)動開發(fā)  154
9.1 過程形成質(zhì)量  155
9.1.1 本示例的需求  155
9.1.2 報告測試結果  156
9.2 從數(shù)據(jù)庫取數(shù)  157
9.2.1 基本測試  157
9.2.2 第一個真正的測試  158
9.2.3 通過測試  160
9.2.4 讓代碼運行  161
9.2.5 測試直到確信沒有問題  163
9.3 數(shù)據(jù)庫插入和更新  164
9.3.1 讓測試更易讀  165
9.3.2 紅,綠,重構  166
9.4 真正的數(shù)據(jù)庫事務處理  168
9.4.1 測試事務處理  168
9.4.2 實現(xiàn)事務處理  170
9.4.3 調(diào)試的終結  171
9.4.4 測試是工具,不是替代品  171
9.5 小結  172
第10章 高級測試技術  173
10.1 具有持久化功能的聯(lián)系人管理器  174
10.1.1 運行多個測試用例  174
10.1.2 測試聯(lián)系人的持久化  175
10.1.3 Contact和ContactFinder類  177
10.1.4 setUp()和tearDown()  178
10.1.5 最終版本  179
10.2 向聯(lián)系人發(fā)送郵件  180
10.2.1 設計Mailer類及其測試環(huán)境  180
10.2.2 手工編寫模擬對象  181
10.2.3 更為完善的模擬對象  182
10.2.4 自頂向下測試  183
10.2.5 模擬的局限性  184
10.3 虛擬的郵件服務器  185
10.3.1 安裝fakemail  186
10.3.2 郵件測試  187
10.3.3 網(wǎng)關作為適配器  190
10.4 小結  190
第11章 重構Web應用程序  192
11.1 真實世界中的重構  193
11.1.1 早期重構和后期重構  193
11.1.2 重構與重新實現(xiàn)  194
11.2 重構基礎:可讀性和重復性代碼  195
11.2.1 提高可讀性  195
11.2.2 消除重復性代碼  197
11.3 分離標記與程序代碼  199
11.3.1 分離何以有用  200
11.3.2 合宜使用CSS  200
11.3.3 清理生成鏈接的函數(shù)  201
11.3.4 在SimpleTest中引入模板  205
11.4 簡化條件表達式  209
11.4.1 簡單示例  210
11.4.2 稍長的示例:身份驗證代碼  211
11.4.3 處理條件HTML  216
11.5 從面向過程到面向?qū)ο蟮闹貥嫛?217
11.5.1 測試面向過程代碼  217
11.5.2 進行重構  218
11.6 小結  221
第12章 用Web測試控制  222
12.1 再看聯(lián)系人管理器  223
12.1.1 樣板  223
12.1.2 創(chuàng)建Web測試  225
12.1.3 用虛擬網(wǎng)頁交互通過測試  226
12.1.4 一次編寫,到處測試  227
12.2 可工作的表單  229
12.2.1 嘗試將聯(lián)系人保存到數(shù)據(jù)庫中  230
12.2.2 創(chuàng)建數(shù)據(jù)庫  231
12.2.3 為查找器創(chuàng)建存根  232
12.3 質(zhì)量保證  234
12.3.1 讓聯(lián)系人管理器可以進行單元測試  234
12.3.2 從用例到驗收測試  236
12.4 可怕的遺留代碼  238
12.5 小結  242
第三部分 構建Web界面
第13章 使用模板管理Web表現(xiàn)層  244
13.1 分離表現(xiàn)層和域邏輯  244
13.1.1 分離還是不分離……  245
13.1.2 為什么使用模板  245
13.2 哪個模板引擎  247
13.2.1 普通PHP  248
13.2.2 定制語法:Smarty  249
13.2.3 屬性語言:PHPTAL  251
13.3 轉(zhuǎn)換:XSLT  254
13.3.1 “XML化”網(wǎng)頁  255
13.3.2 設置XSLT  256
13.3.3 XSLT樣式表  256
13.3.4 從PHP運行XSLT  258
13.4 將邏輯與模板分離  259
13.4.1 視圖協(xié)助器  260
13.4.2 交替行顏色  260
13.4.3 處理日期和時間格式  261
13.4.4 生成層級顯示  263
13.4.5 防止從模板更新  265
13.5 模板和安全  266
13.5.1 PHPTAL  266
13.5.2 Smarty  267
13.5.3 XSLT  267
13.6 小結  267
第14章 構建復雜網(wǎng)頁  269
14.1 組合模板(復合視圖)  269
14.1.1 復合視圖:一個或多個設計模式  269
14.1.2 復合數(shù)據(jù)和復合模板  270
14.2 實現(xiàn)直觀的復合視圖  270
14.2.1 我們的目標  270
14.2.2 使用Smarty  272
14.2.3 使用PHPTAL  273
14.2.4 使用PHPTAL的頁面宏  274
14.3 復合視圖示例  275
14.3.1 制作打印友好的頁面  276
14.3.2 將現(xiàn)有應用程序集成到復合視圖中  277
14.3.3 多方顯示站點和Fowler的兩步視圖  278
14.4 小結  280
第15章 用戶交互  281
15.1 MVC體系結構  282
15.1.1 撥開MVC的迷霧  283
15.1.2 定義基本概念  284
15.1.3 命令還是操作  286
15.1.4 Web  MVC不是富客戶MVC  286
15.2 Web命令模式  287
15.2.1 工作原理  288
15.2.2 命令標識符  288
15.2.3 Web處理程序  289
15.2.4 命令執(zhí)行器  289
15.3 保持實現(xiàn)簡單  290
15.3.1 示例:“原生的”Web應用程序  290
15.3.2 引入命令函數(shù)  292
15.4 小結  294
第16章 控制器  296
16.1 控制器和請求對象  297
16.1.1 基本請求對象  297
16.1.2 安全問題  298
16.2 使用頁面控制器  299
16.2.1 簡單示例  300
16.2.2 從頁面控制器選擇視圖  301
16.2.3 讓命令可進行單元測試  302
16.2.4 避免HTML輸出  303
16.2.5 使用模板  303
16.2.6 重定向問題  304
16.3 構建前端控制器  307
16.3.1 一個命令一個類的Web處理程序  307
16.3.2 命令還需要些什么  308
16.3.3 使用命令組  309
16.3.4 有多個提交按鈕的表單  310
16.3.5 用JavaScript生成命令  311
16.3.6 用于復合視圖的控制器  311
16.4 小結  312
第17章 輸入驗證  314
17.1 應用程序設計中的輸入驗證  315
17.1.1 驗證和應用程序體系結構  315
17.1.2 驗證策略  316
17.1.3 命名表單組件  317
17.2 服務器端驗證及其問題  317
17.2.1 重復問題  318
17.2.2 樣式問題  318
17.2.3 測試和頁面導航問題  319
17.2.4 我們能解決多少問題  319
17.3 客戶端驗證  320
17.3.1 普通的乏味的客戶端驗證  320
17.3.2 逐個驗證字段  321
17.3.3 你做不到這一點  323
17.3.4 表單  326
17.4 面向?qū)ο蟮姆掌鞫蓑炞C  327
17.4.1 規(guī)則和驗證程序  328
17.4.2 安全的請求對象體系結構  329
17.4.3 現(xiàn)在驗證非常簡單  333
17.4.4 讓其變得簡單的類  334
17.4.5 使用Specification對象  336
17.4.6 知識豐富的設計  339
17.4.7 向外觀添加驗證  340
17.5 同步服務器端和客戶端驗證  341
17.5.1 表單生成器  342
17.5.2 配置文件  342
17.5.3 從客戶端驗證生成服務器端驗證  343
17.6 小結  343
第18章 表單處理  345
18.1 用HTML_QuickForm設計解決方案  345
18.1.1 最小需求和設計  346
18.1.2 將生成的元素放到HTML表單中  346
18.1.3 找到抽象  347
18.1.4 更為具體的需求  348
18.1.5 選擇問題  349
18.2 實現(xiàn)解決方案  350
18.2.1 包裝HTML_QuickForm元素  350
18.2.2 輸入控件  351
18.2.3 哪個類創(chuàng)建表單控件  354
18.2.4 驗證  355
18.2.5 在模板中使用表單對象  357
18.2.6 下一步做什么  359
18.3 小結  359
第19章 數(shù)據(jù)庫連接、抽象和配置  361
19.1 數(shù)據(jù)庫抽象  362
19.1.1 預處理語句  362
19.1.2 面向?qū)ο蟮臄?shù)據(jù)庫查詢  364
19.2 裝飾和適配數(shù)據(jù)庫資源對象  366
19.2.1 簡單的可配置數(shù)據(jù)庫連接  366
19.2.2 從結果集制作與SPL兼容的迭代器  367
19.3 讓數(shù)據(jù)庫連接可用  369
19.3.1 單例和類似模式  370
19.3.2 服務定位器和注冊表  371
19.4 小結  373
第四部分 數(shù)據(jù)庫和基礎結構
第20章 對象和SQL  376
20.1 對象-關系阻抗不匹配  376
20.2 封裝和隱藏SQL  378
20.2.1 基本示例  378
20.2.2 在SQL語句中替換字符串  379
20.3 通用化SQL  383
20.3.1 列的列表和表名  383
20.3.2 使用SQL別名  386
20.3.3 生成INSERT、UPDATE和DELETE語句  386
20.3.4 查詢對象  390
20.3.5 適用的設計模式  391
20.4 小結  391
第21章 數(shù)據(jù)類設計  392
21.1 最簡單的方法  392
21.1.1 用Finder類檢索數(shù)據(jù)  393
21.1.2 主要程序:表數(shù)據(jù)網(wǎng)關  395
21.2 讓對象自身持久化  400
21.2.1 自我持久化的查找器  401
21.2.2 讓對象存儲自己  405
21.3 數(shù)據(jù)映射器模式  406
21.3.1 數(shù)據(jù)映射器和DAO  406
21.3.2 這些模式無甚差別  408
21.3.3 模式小結  409
21.4 實際使用效果  409
21.4.1 模式在典型Web應用程序中的效果  410
21.4.2 優(yōu)化查詢  411
21.5 小結  411
附錄A 測試工具和小技巧  412
附錄B 安全  420
參考文獻  429

本目錄推薦

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