內容介紹
本書適合有一定PHP基礎和開發網站經驗的讀者學習,以進一步提高網路應用程式的開發效率。Zend Framework是PHP官方推出的重量級框架,擁有強大的功能和穩健的性能,因為完全採用面向對象思想和模式構建,所以相對於僅熟悉面向過程開發的PHP程式設計師來說顯得比較難。本書通過一個完整的網路套用實例,帶領讀者輕鬆愉快地掌握該框架。這不是一本關於詩歌的書,雖然名字叫《詩意的邊緣》,但網路程式開發的詩意依託於程式代碼,如果說本書除了講解技術之外,還有一點“文學性”的話,那么這種“文學性”離開程式開發的過程,顯得累贅、造作而枯燥,並無可讀性。
這是一本Zend Framework的入門級實例教程,但不是PHP的,如果你沒有學過PHP,不曾了解過面向對象編程,這本書對你來說可能會有點難——Zend Framework入門時的學習曲線陡峭是出了名的。但是,也有一種可能:本書也可能適合一些開發經驗不多,但卻有著使用各類開源程式來搭建網站的豐富經驗的使用者,如果他們想進入開發領域,那么讀這本書可能是一條捷徑,他們可以繞過PHP面向過程的編碼方式,直接從面向對象入手——我這么說可能會引起爭議,因為在很多過來人看來,學好面向過程的原生代碼是基本功課,這之後才能開始步入面向對象和框架的領域——我覺得凡事沒有絕對,PHP也在進化之中,我編寫這本書的主要目的,就是希望一些剛開始接觸網站開發的讀者能夠以面向對象的框架為起點,比較順利地步入網站開發的行程。如果你是這樣的一個新手,本書的過程講解細緻周全,學習起來不會太吃力,然而可能會有一部分內容對你來說顯得比較難,需要你以很大的耐心去泡Google、百度,做一些補習功課。
如果你胸懷大志,但既沒有學過任何計算機語言,也沒有接觸過做網站這件事,那么這本書對你來說就很困難了,建議你還是從一些更為基礎的書籍著手學習,如可以先學習HTML,並嘗試多了解一些PHP的開源程式和PHP的基礎知識,對網路編程具備一定的了解之後,再來學習這本書。
作者介紹
歐雪冰,網名unity,目前在一所職業學講授PHP課程,並在一些大學開展針對畢業大學生的技術培訓,在學校他創辦了一個工作室,帶領學生進行實際項目的開發工作。在此之前,他做過書店店員、雜誌編輯、IT經理,更多的時間是作為一名自由職業者,從事寫作和藝術活動,涉足領域包括詩歌、小說、劇本、獨立電影和數字藝術、觀念藝術等。由於對計算機和網際網路的痴迷,他花費了很多時間和精力鑽研各種IT技術,後來PHP語言逐漸成為他的最愛,用它設計、開發了多個網站程式。他對科學技術和人文知識都懷有濃厚興趣,認為現行教育的分學科分專業對人的學習潛能產生極大束縛,應該打破學科限制,用更有效的方式組織和傳授知識,讓人在知識領域自由邀翔。他是一名巴哈伊信仰者,開源運動和開放課程計畫的堅實擁護者,主張以“人類一體,天下一家”的視野構建知識框架,推動世界文明的演進。
現在,他正專注於一個名為CloudBody的科幻主題協同創作平台的開發和推廣,希望對青少年教育、流行文化傳播、文學藝術創作產生影響,感興趣的朋友可以通過郵件與他聯繫:[email protected]
作品目錄
第1部分開發前的準備工作第1章創建開發環境 2
1.1配置開發環境 3
1.1.1Windows系統下XAMPP集成軟體包的下載和安裝 4
1.1.2Linux系統下Apache、MySQL、PHP的安裝 9
1.1.3Zend Server CE開發環境 11
1.1.4phpMyAdmin工具 11
1.2模仿更真實的伺服器環境 12
1.2.1劫持一個域名 13
1.2.2啟用Rewrite模組 14
1.2.3創建虛擬主機 14
1.3開發工具 16
1.3.1Zend Studio 16
1.3.2vim編輯器 18
1.4本章小結 20
第2章安裝並初步了解Zend Framework框架 21
2.1Zend Framework的下載和安裝 22
2.2創建Zend Framework項目 23
2.2.1使用ZF tool 23
2.2.2使用Zend Studio 30
2.3了解Zend Framework的MVC結構 33
2.3.1Controller控制器 37
2.3.2Model模型 38
2.3.3View視圖 38
2.3.4路由和分發規則 39
2.4本章小結 41
第3章layout模板布局 42
3.1準備整站CSS檔案 43
3.2理解layout 43
3.3開啟layout布局模板 44
3.4規劃layout 45
3.4.1套用不同的layout 47
3.4.2避免過度設計 47
3.5在Bootstrap引導檔案中添加資源 47
3.6讓布局更完整和符合標準 48
3.7本章小結 49
第2部分開發網站的前台
第4章基本頁面的實現 52
4.1準備好資料庫 53
4.1.1資料庫的設計 54
4.1.2創建資料庫 55
4.1.3添加示例數據 56
4.1.4在application.ini檔案中配置資料庫信息 56
4.2顯示一篇新聞文章 60
4.2.1創建文章模型和方法 61
4.2.2創建新聞文章控制器 64
4.2.3創建新聞頻道首頁視圖 65
4.2.4改進模型,讓它適應更複雜的查詢條件 66
4.2.5改進NewsController控制器 67
4.3顯示一個新聞文章列表 68
4.3.1擴充Page模型,添加getPages方法 69
4.3.2擴充News控制器 70
4.3.3使用partialLoop助手輸出循環 71
4.4創建文章詳細信息頁面 72
4.4.1創建PageController控制器並添加detail方法 73
4.4.2創建detail頁面視圖 74
4.4.3在detail頁面添加其他文章的連結 74
4.5本章小結 76
第5章對頁面進行分類和導航 78
5.1頁面組織和分類的資料庫設計 79
5.1.1設計分類資料庫 79
5.1.2創建分類資料庫並添加示例數據 80
5.2創建Category模型 81
5.3創建CategoryController分類控制器 82
5.4輸出分類到視圖 83
5.5創建新頻道 84
5.5.1準備一些數據 85
5.5.2創建About控制器 85
5.5.3創建About視圖 85
5.6創建導航選單和麵包屑路徑 87
5.6.1了解Zend_Navigation組件 87
5.6.2編寫XML檔案 88
5.6.3在bootstrap.ini引導檔案中進行配置 89
5.6.4在layout布局模板和視圖中調用 90
5.6.5結合JavaScript代碼完成導航欄製作 90
5.7本章小結 92
第6章用戶註冊、登錄和註銷 93
6.1準備用戶數據表 94
6.2實現用戶註冊功能 95
6.2.1創建註冊表單 95
6.2.2處理表單 101
6.2.3增加用戶頁面 105
6.2.4用E-mail通知用戶註冊成功 107
6.2.5避免同名用戶 108
6.3實現用戶登錄和註銷 110
6.3.1創建登錄表單 111
6.3.2使用Zend_Auth組件實現登錄 112
6.3.3在layout中構建用戶面板 115
6.4註銷賬戶 118
6.5賬戶管理 119
6.5.1修改賬戶頁面 119
6.5.2更新用戶信息 120
6.5.3修改密碼 126
6.5.4忘記密碼的處理方法 127
6.6本章小結 131
第7章部落格 132
7.1準備資料庫 133
7.1.1添加部落格分類數據 133
7.1.2創建Tag標籤相關數據表 133
7.2發表部落格 134
7.2.1創建部落格表單 134
7.2.2為表單擴展Page模型 140
7.2.3實現部落格Tag功能 143
7.2.4部落格表單的處理 145
7.3部落格的顯示 147
7.3.1部落格首頁 147
7.3.2使用Zend_Paginator進行分頁顯示 148
7.3.3部落格內容頁面 154
7.4部落格的更新與刪除 157
7.5為部落格添加評論功能 162
7.5.1創建資料庫 162
7.5.2評論表單 162
7.5.3在控制器中增加驗證碼 164
7.5.4評論表單的處理 166
7.5.5顯示評論 170
7.6本章小結 171
第8章社區 172
8.1資料庫設計和準備工作 173
8.2更換布局 176
8.2.1創建新的論壇布局模板 176
8.2.2控制器中使用新布局檔案 177
8.3社區的模型 177
8.3.1ForumCategories模型 178
8.3.2Forum模型 178
8.3.3ForumTopic模型 179
8.3.4ForumPost模型 182
8.4社區首頁 185
8.4.1首頁控制器 186
8.4.2視圖 187
8.5發表主題 188
8.5.1表單 188
8.5.2控制器 189
8.5.3視圖 190
8.6為表單添加所見即所得編輯器 191
8.6.1安裝和配置 192
8.6.2在視圖中部署 204
8.6.3用裝飾器修正錯誤 205
8.7為編輯器添加圖片上傳功能 206
8.8板塊頁面 208
8.8.1控制器 208
8.8.2視圖 209
8.9主題頁面 212
8.9.1控制器 212
8.9.2視圖 213
8.10回復主題 217
8.10.1控制器 217
8.10.2視圖 218
8.11帖子管理 218
8.11.1修改模型 218
8.11.2主題的更新和刪除 220
8.11.3回復的更新和刪除 221
8.12論壇、部落格和用戶頁面的整合 223
8.12.1User控制器 223
8.12.2用戶account視圖 224
8.13本章小結 226
第3部分開發網站後台和其他特殊功能
第9章框架結構和後台管理模組的創建 228
9.1什麼是模組 229
9.2創建admin模組 230
9.3模組Bootstrap引導檔案 231
9.4為admin模組規劃模板 232
9.4.1模板檔案 232
9.4.2給admin套用新模板 233
9.5啟用Dojo框架 236
9.5.1部署Dojo 238
9.5.2啟用Zend_Dojo組件 239
9.6本章小結 242
第10章實現後台管理功能 243
10.1管理分類 244
10.1.1分類管理的準備工作 245
10.1.2後台分類首頁 246
10.1.3創建分類 251
10.1.4更新分類 256
10.1.5刪除分類 257
10.2管理用戶 258
10.2.1後台用戶首頁 258
10.2.2添加用戶 260
10.2.3更新用戶 268
10.2.4刪除用戶 270
10.2.5用戶信息頁面 271
10.3文章和頁面的管理 274
10.3.1文章列表 275
10.3.2添加文章 276
10.3.3編輯文章 281
10.3.4刪除文章 282
10.3.5構建條件過濾表單 283
10.4管理論壇 288
10.4.1後台論壇模型 288
10.4.2論壇分區 292
10.4.3移動論壇分區位置 295
10.4.4論壇板塊 298
10.5用自定義視圖助手實現RSS調用 299
10.6本章小結 303
第11章用戶認證、授權和管理 304
11.1認識Zend_Acl組件 305
11.2理解基本概念 306
11.2.1開發Acl外掛程式 309
11.2.2在配置檔案中開啟外掛程式 313
11.3本章小結 313
第12章網站的最佳化和部署 314
12.1性能測試 314
12.2使用Zend_Db_Profiler了解資料庫查詢情況 320
12.3使用Zend_Cache快取數據 322
12.3.1Zend_Cache快取原理 323
12.3.2配置檔案 323
12.4伺服器空間的選擇 324
12.5Zend Framework在伺服器上的安裝 325
12.6重新修改配置檔案 326
12.7本章小結 326
附錄AZend Framework的組件索引 328