PHP MVC 開發實戰

內容介紹

"MVC是一種先進的開發模式,能夠解決團隊開發之間協同配合的問題,使得網站各部件以更高的效率運行。MVC模式將網站分為3大部件,分別為模型、視圖、控制器。這3大部件各自分離,但又相互依存,最終形成了一個容易維護、容易擴展、高效運行的網站平台。對於後台程式設計師,藉助於MVC模式就可以更加專注於功能的實現,而不需要太多地涉及頁面與前端。這種分工協作的最終目的是提高開發效率及項目質量。對於個人項目,也許在其他編程技術(例如Java、Python)中,MVC模式並沒有優勢,但在PHP中,由於支持混合編程,所以使用MVC模式進行編程,能顯著提高工作效率。
本書是國內第一本專門介紹PHP MVC開發模式的圖書,全書圍繞MVC實現思路進行細緻的講解。通過MVC編程模式,以點帶面,全面深入探討PHP核心技術。同時,本書也是一本深入介紹利用PHP構建高性能網站的圖書,通過MVC的資料庫中間件,可以輕鬆實現網站群體、讀寫分離等高級套用,本書在此基礎上還會進一步介紹當前流行的NoSQL套用、全文搜尋套用等。最後,作者通過一個自行編寫的MVC框架,引導讀者開發屬於自己的PHP MVC框架。
本書內容通俗易懂、示例形象,適合廣大的Web從業人員閱讀。由於PHP非常簡單、易用,所以就算是未接觸過PHP的讀者或者初學者,只要掌握了基礎的面向對象編程思想就可以輕鬆上手。
"

作者介紹

李開涌,IT作家,技術顧問。曾供職於電信盈科,主要從事分散式集成系統的開發。擁有超過8年的開源技術編程經驗,對Linux、FreeBSD以及Hadoop集群等均有豐富的使用及開發經驗。同時,還是微軟Silverlight MVP,精通微軟的.NET平台技術,是國內最早從事Windows Phone技術普及的IT作者,曾著有《Windows Phone 7套用開發入門與實踐》一書。目前從事分散式開發及雲技術研究。

作品目錄

"目 錄
前言
基礎篇
第1章開發前準備2
1.1PHP與MVC概述3
1.2開發環境搭建7
1.2.1在Windows下使用一鍵安裝包8
1.2.2在Linux平台安裝LNMP11
1.3開發工具介紹20
1.3.1PHP Coder20
1.3.2PHP Editor21
1.3.3NetBeans IDE21
1.3.4Eclipse PDT22
1.3.5Zend Studio24
1.3.6Adobe Dreamweaver25
1.3.7VS.PHP27
1.4SVN版本控制28
1.4.1SVN介紹28
1.4.2SVN的安裝29
1.4.3TortoiseSVN的簡單使用32
1.4.4TortoiseSVN檔案管理35
1.4.5SVN版本庫許可權配置38
1.5小結40
第2章面向對象基礎41
2.1面向對象介紹42
2.2PHP面向對象基礎43
2.2.1class關鍵字43
2.2.2類中的成員44
2.2.3實例化類46
2.3類中的方法47
2.3.1方法的參數47
2.3.2方法的返回值48
2.3.3訪問修飾符49
2.3.4$this關鍵字50
2.4類的繼承50
2.4.1子類繼承父類51
2.4.2重寫父類中的成員屬性52
2.4.3final關鍵字53
2.5靜態類成員54
2.5.1static關鍵字54
2.5.2訪問靜態類成員(self::parent::)55
2.5.3類常量57
2.6小結58
第3章類的高級特性59
3.1類對象的克隆(clone)60
3.2類接口(interface)60
3.2.1接口的意義60
3.2.2定義接口61
3.2.3實現接口(implements)62
3.3抽象類與抽象方法64
3.3.1理解抽象概念65
3.3.2定義抽象類和方法(abstract)65
3.3.3使用抽象類66
3.3.4接口與抽象類的區別67
3.4類的異常68
3.4.1Exception類68
3.4.2使用try、catch、throw語句69
3.5小結70
實戰篇
第4章PHP MVC發展狀況72
4.1出身豪門的Zend Framework73
4.1.1Zend Framework簡介73
4.1.2安裝Zend Framework73
4.1.3使用Zend Framework實現MVC75
4.1.4Zend Framework核心組件76
4.2功能強大的Symfony80
4.2.1Symfony簡介80
4.2.2獲得Symfony81
4.2.3實現一個簡單的MVC82
4.2.4Symfony的配置檔案85
4.3靈活完善的CakePHP85
4.3.1CakePHP簡介85
4.3.2下載安裝CakePHP86
4.3.3使用CakePHP構建MVC編程86
4.3.4好用的CakePHP視圖助手89
4.4使用廣泛的CodeIgniter89
4.4.1CodeIgniter簡介89
4.4.2安裝CodeIgniter90
4.4.3使用CodeIgniter實現MVC91
4.5高效便捷的ThinkPHP94
4.5.1ThinkPHP介紹94
4.5.2下載安裝ThinkPHP95
4.5.3使用ThinkPHP實現MVC96
4.5.4高效的ThinkPHP視圖引擎98
4.6小結100
第5章ThinkPHP開發入門101
5.1大道至簡、開發由我102
5.1.1入口檔案102
5.1.2兩種創建項目的方式103
5.1.3模組分組104
5.2ThinkPHP目錄106
5.2.1系統目錄106
5.2.2項目目錄110
5.3配置檔案111
5.3.1選項配置111
5.3.2靜態快取配置113
5.3.3路由配置115
5.4小結115
第6章ThinkPHP開發MVC套用116
6.1ThinkPHP中的URL117
6.1.1URL模式117
6.1.2URL路由119
6.1.3自動生成匹配的URL121
6.1.4實現檔案偽靜態122
6.2模型(Model)123
6.2.1創建模型123
6.2.2實例化模型124
6.2.3模型初始化(_initialize())125
6.3控制器(Controller)126
6.3.1創建控制器126
6.3.2控制器中的動作(Action)126
6.3.3控制器的調用128
6.3.4項目空控制器與控制器空動作129
6.3.5動作的前後操作131
6.4視圖(View)132
6.4.1創建和使用視圖132
6.4.2系統變數與常量133
6.4.3在視圖中使用函式134
6.4.4數據循環135
6.4.5條件判斷138
6.4.6使用外部檔案141
6.4.7導入標籤庫142
6.4.8使用布局145
6.5小結147
第7章ThinkPHP的資料庫操作148
7.1定義數據表模型149
7.1.1模型映射149
7.1.2自定義模型149
7.1.3create方法151
7.1.4模型屬性154
7.2基礎模型(Model)158
7.2.1連貫操作159
7.2.2CURD159
7.2.3查詢語言163
7.2.4使用原生的SQL語言166
7.3關聯模型(RelationModel)167
7.3.1關聯關係167
7.3.2關聯定義168
7.3.3關聯模型的CURD169
7.4高級模型(AdvModel)174
7.4.1定位查詢174
7.4.2動態查詢175
7.4.3內容存文本176
7.5大數據支持176
7.5.1分散式資料庫177
7.5.2讀寫分離179
7.5.3數據表分區183
7.6小結187
第8章安全與調試188
8.1構建穩健及安全的MVC189
8.2ThinkPHP內置的安全機制189
8.2.1表單令牌189
8.2.2欄位檢測190
8.2.3數據驗證193
8.2.4數據驗證碼197
8.3ThinkPHP安全日誌機制201
8.3.1記錄方式201
8.3.2系統日誌202
8.3.3套用日誌202
8.4使用訊息佇列機制204
8.4.1HTTPSQS基礎204
8.4.2安裝HTTPSQS205
8.4.3測試HTTPSQS207
8.4.4在MVC中使用HTTPSQS209
8.5ThinkPHP程式調試機制212
8.5.1開啟調試功能212
8.5.2代碼編譯概念214
8.5.3異常定製215
8.5.4性能調試216
8.6小結218
第9章ThinkPHP功能庫220
9.1數據處理221
9.1.1XML引擎221
9.1.2返回XML228
9.1.3返回Json232
9.1.4使用Json及Jsonp235
9.2ThinkPHP函式館241
9.2.1快捷方法241
9.2.2基礎函式館242
9.2.3擴展函式館245
9.3ThinkPHP多語言支持248
9.3.1部署多語言248
9.3.2實現多語言249
9.3.3多語言與客戶端250
9.4客戶端252
9.4.1封裝的Session252
9.4.2封裝的Cookie256
9.5小結257
第10章網站靜態化259
10.1Cache類260
10.1.1快取的方式260
10.1.2開啟快取260
10.1.3安裝Memcached261
10.1.4使用Memcached265
10.2Memcached實戰套用267
10.2.1頁面局部快取267
10.2.2快取數據集267
10.2.3使用Memcache存放Session270
10.3使用Redis快取274
10.3.1Redis的安裝274
10.3.2安裝Redis擴展277
10.3.3測試Redis279
10.3.4Redis快取279
10.4靜態快取282
10.4.1靜態快取配置282
10.4.2靜態快取規則283
10.5小結286
第11章ThinkPHP擴展287
11.1使用擴展288
11.1.1擴展的分類288
11.1.2模板引擎擴展291
11.2網路操作293
11.2.1檔案上傳293
11.2.2Nginx檔案上傳進度295
11.2.3FTP檔案上傳304
11.2.4下載檔案305
11.2.5Socket套接字編程306
11.2.6定位當前位置308
11.2.7傳送電子郵件309
11.3數據處理311
11.3.1數據加密311
11.3.2數據編碼轉換313
11.3.3數據分頁314
11.3.4日期數據315
11.3.5Input類317
11.3.6GD庫繪製圖形318
11.4行為擴展320
11.4.1行為概述320
11.4.2內置行為擴展322
11.4.3自定義行為擴展323
11.5小結325
第12章SOAP分散式開發326
12.1分散式開發概念327
12.1.1SOA與SOAP327
12.1.2PHP 5分散式開發329
12.2SOAP訊息體331
12.2.1WSDL檔案331
12.2.2定義根訊息體definitions335
12.2.3type類型335
12.2.4portType連線埠類型336
12.2.5message訊息列表337
12.2.6binding服務綁定描述337
12.2.7service服務描述338
12.2.8可視化創建WSDL338
12.2.9使用nusoap創建WSDL341
12.2.10ThinkPHP生成SOAP服務343
12.3使用soapUI測試WSDL347
12.3.1soapUI簡介347
12.3.2安裝soapUI348
12.3.3創建項目349
12.3.4測試項目350
12.3.5負載測試351
12.4小結353
第13章整合Smarty模板引擎354
13.1Smarty模板引擎介紹355
13.2使用Smarty356
13.2.1在PHP中使用Smarty356
13.2.2開啟ThinkPHP模板擴展358
13.2.3以擴展的方式使用全功能Smarty358
13.3Smarty模板函式和標籤360
13.3.1include(包含檔案)361
13.3.2capture(暫存數據)361
13.3.3include_php(包含PHP檔案)362
13.3.4insert(插入函式)362
13.3.5literal(原文本輸出)363
13.3.6php(執行PHP語句塊)363
13.3.7strip(保留空格和回車符)364
13.4Smarty模板控制語句364
13.4.1if、elseif(判斷語句)364
13.4.2foreach(循環數據)365
13.4.3section(遍歷數組)366
13.5變數調節器367
13.5.1capitalize(首字母大寫)367
13.5.2count_characters(統計字元)367
13.5.3count_paragraphs(統計段落)367
13.5.4count_sentences(統計句數)368
13.5.5count_words(統計單詞)368
13.5.6date_format(格式化日期)368
13.5.7escape(字元轉碼)369
13.5.8replace(字元替換)369
13.5.9regex_replace(正則替換)370
13.5.10truncate(字元截取)370
13.6視圖助手370
13.6.1html_image(生成圖像)370
13.6.2html_options(生成表單選擇組件)371
13.6.3html_radios(生成表單單選組件)372
13.6.4html_checkboxes(生成表單複選組件)373
13.6.5html_select_date(生成表單日期選擇組件)374
13.6.6html_select_time(生成表單時間選擇組件)376
13.6.7html_table(生成表格)377
13.7Smarty對象方法378
13.7.1display(顯示模板)378
13.7.2fetch(獲取輸出內容)379
13.7.3configLoad(載入配置信息)379
13.7.4registerPlugin(註冊外掛程式)380
13.8Smarty快取383
13.8.1開啟快取383
13.8.2局部快取384
13.9小結386
第14章整合Coreseek全文搜尋服務387
14.1全文索引概述388
14.2Coreseek基礎389
14.2.1Coreseek概述389
14.2.2在Windows下安裝Coreseek390
14.2.3在Linux下安裝Coreseek394
14.3Coreseek管理工具397
14.3.1indexer397
14.3.2searchd400
14.3.3search402
14.4創建索引403
14.4.1索引源分類403
14.4.2增量索引407
14.4.3實時索引409
14.5在MVC中搜尋數據412
14.5.1安裝Sphinx擴展模組412
14.5.2使用PHP接口413
14.5.3在MVC中搜尋數據414
14.5.4實現關鍵字高亮顯示418
14.6小結420
第15章使用MongoDB421
15.1MongoDB介紹422
15.2MongoDB的安裝424
15.2.1在Windows下安裝MongoDB424
15.2.2在Linux下安裝MongoDB426
15.3MongoDB的使用428
15.3.1理解MongoDB的數據結構428
15.3.2資料庫管理429
15.3.3文檔數據類型430
15.3.4插入數據432
15.3.5查詢數據433
15.3.6更新數據436
15.3.7刪除數據436
15.4條件操作437
15.4.1條件判斷語句437
15.4.2$all匹配全部438
15.4.3$exists 檢查欄位438
15.4.4null 空值處理439
15.4.5$ne比較439
15.4.6$mod 取模運算440
15.4.7$in、nin枚舉查詢440
15.4.8$or、$nor判斷查詢441
15.4.9$type映射查詢442
15.4.10使用正則表達式匹配442
15.4.11limit、skip 限制查詢443
15.4.12count 查詢記錄條數444
15.4.13sort 查詢結果排序444
15.5性能最佳化445
15.5.1使用索引445
15.5.2固定集合448
15.5.3GridFS450
15.5.4Profile最佳化器450
15.6在MVC中使用MongoDB451
15.6.1安裝PHP擴展451
15.6.2開啟MongoDB用戶驗證453
15.6.3ThinkPHP操作MongoDB455
15.7小結459
第16章Redis實戰460
16.1Redis的使用461
16.1.1Redis概述461
16.1.2常用管理命令462
16.1.3Redis用戶驗證464
16.2Redis數據類型465
16.2.1String類型465
16.2.2Hash類型467
16.2.3List類型469
16.2.4Sets類型473
16.2.5Zset類型477
16.2.6使用phpRedisAdmin480
16.3Redis高級使用483
16.3.1數據持久化483
16.3.2虛擬記憶體484
16.3.3事務處理484
16.3.4主從同步486
16.4在MVC中使用Redis487
16.4.1在PHP中使用Redis487
16.4.2在MVC中進行CURD操作491
16.4.3數據分頁496
16.5小結498
項目篇
第17章開發論壇系統500
17.1開發前準備501
17.1.1系統介紹501
17.1.2系統預覽501
17.1.3架構設計505
17.1.4系統部署511
17.2系統整體界面設計513
17.2.1布局方案514
17.2.2論壇首頁516
17.2.3論壇版塊519
17.3用戶模組524
17.3.1用戶登錄524
17.3.2用戶註冊528
17.3.3使用微博賬號登錄532
17.3.4將現有賬號綁定到微博535
17.4發表帖子模組537
17.4.1整合百度編輯器537
17.4.2上傳圖片540
17.4.3管理圖片542
17.4.4上傳附屬檔案543
17.4.5 數據提交處理544
17.5 帖子內容模組545
17.5.1帖子正文545
17.5.2回複列表547
17.5.3回覆帖子550
17.6 帖子管理模組551
17.6.1刪除帖子551
17.6.2鎖定帖子553
17.6.3置頂帖子554
17.6.4推薦帖子554
17.7行為攔截器555
17.7.1統計瀏覽量555
17.7.2登記瀏覽位置556
17.8 帖子搜尋模組557
17.8.1標題搜尋557
17.8.2使用全文搜尋558
17.9小結562
第18章開發自己的MVC框架563
18.1開發前準備564
18.1.1開發MVC框架的思路564
18.1.2檔案結構564
18.2核心類庫565
18.2.1初始化565
18.2.2URL處理566
18.3控制器的開發567
18.3.1類自動載入568
18.3.2載入模板引擎(View)569
18.3.3處理訊息(message)569
18.4模型的開發572
18.4.1使用PDO572
18.4.2模型實例化573
18.4.3實現連貫操作573
18.4.4讀取數據574
18.4.5插入數據576
18.4.6更新數據577
18.4.7刪除數據578
18.5擴展類庫582
18.5.1Session驅動擴展583
18.5.2快取驅動擴展586
18.6測試MVC框架588
18.6.1創建項目589
18.6.2測試CURD590
18.6.3測試驅動594
18.7小結595
附錄596
附錄A讓Nginx支持Pathinfo模式596
附錄B配置團隊開發環境597
"

相關詞條

相關搜尋

熱門詞條

聯絡我們