編輯推薦:
首次毫無偏見地對比3大主流PHP框架
全書源碼免費(fèi)下載
基本信息
作者: (波蘭)Bartosz Porebski Karol Przystalski Leszek Nowak [作譯者介紹]
譯者: 付勇 景麗
出版社:清華大學(xué)出版社
ISBN:9787302279709
上架時間:2012-3-19
出版日期:2012 年2月
開本:16開
頁碼:503
版次:1-1
樣章試讀:
http://www.china-pub.com/computers/common/mianfeisd.asp?id=59792
內(nèi)容簡介:
盡管學(xué)習(xí)如何使用單個PHP框架生成動態(tài)網(wǎng)頁相對簡單,但確定這3種主流Web應(yīng)用程序框架中哪一個最能滿足您的要求卻并不容易。《PHP框架高級編程――應(yīng)用Symfony、
CakePHP和Zend》一書對3種最受歡迎的開源框架進(jìn)行了毫無偏見的深入比較,這3種框架是Symfony、CakePHP和ZendFramework。本書詳細(xì)討論了這3種框架之間的相同點和不同點,并提供每種框架的類似示例和任務(wù),這樣讀者就可以確定哪種框架最適合自己。
主要內(nèi)容
◆ 提供非常有價值的比較法,詳細(xì)比較Symfony、CakePHP和Zend Framework的利弊,并介紹如何使用每種框架解決問題
◆ 介紹常見任務(wù)中使用的標(biāo)準(zhǔn)元素,例如窗體、郵件、搜索、安全和模板
◆ 討論高級功能,例如AJAX、插件、Web服務(wù)、內(nèi)容管理服務(wù)和國際化
◆ 演示如何使用各種測試工具來確保質(zhì)量和提高性能
◆ 介紹即將發(fā)布的新框架,例如CodeIgniter、Lithium和Agavi
作者介紹:
Bartosz Porebski是一位視頻游戲、Web應(yīng)用程序和C++軟件開發(fā)人員。他還是Brain-ComputerInterface的研究人員,同時也是波蘭克拉科夫雅蓋隆大學(xué)的講師。
Karol Przystalski是Sabre Holdings公司的一位軟件質(zhì)量工程師,也是波蘭克拉科夫雅蓋隆大學(xué)的博士。他從Symfony的最早版本就開始使用它,并且寫了一本關(guān)于Symfony框架的書籍。
Leszek Nowak有多年使用框架――例如Django、CakePHP和CodeIgniter――進(jìn)行Web開發(fā)和圖形設(shè)計的經(jīng)驗,他還從事3D建模、動畫、圖像識別和人工智能開發(fā)。他經(jīng)常說“如果科學(xué)用于游戲,就會很有趣
目 錄
第1章 Symfony、CakePHP和Zend
Framework簡介 1
1.1 Web應(yīng)用程序框架的定義及
其用法 1
1.1.1 框架與庫 2
1.1.2 使用框架的時機(jī) 3
1.1.3 PHP與其他編程語言 4
1.2 開源PHP Web框架 5
1.2.1 公眾關(guān)注的框架對比 5
1.2.2 3種框架概述 7
1.2.3 其他框架 9
1.3 Web框架中的設(shè)計模式 13
1.3.1 設(shè)計模式的定義 13
1.3.2 模型-視圖-控制器作為主要
的結(jié)構(gòu)設(shè)計模式 14
1.3.3 其他設(shè)計模式概述 15
第2章 框架入門 27
2.1 配置要求 27
2.1.1 XAMPP 28
2.1.2 Apache 31
2.1.3 數(shù)據(jù)庫 32
2.1.4 PEAR 33
2.1.5 Subversion(SVN) 34
2.1.6 安裝概述 34
2.2 安裝 35
2.2.1 Symfony 35
2.2.2 CakePHP 37
2.2.3 Zend Framework 38
2.3 配置 39
2.3.1 Symfony 39
2.3.2 CakePHP 39
2.3.3 Zend Framework 40
2.4 Hello World應(yīng)用程序 40
2.4.1 Symfony 40
2.4.2 CakePHP 42
2.4.3 Zend Framework 43
2.5 結(jié)構(gòu) 45
2.5.1 Symfony 45
2.5.2 CakePHP 47
2.5.3 Zend Framework 48
2.6 IDE支持 49
2.6.1 NetBeans 50
2.6.2 Eclipse 50
2.6.3 Zend Studio 51
第3章 使用數(shù)據(jù)庫 53
3.1 對象關(guān)系映射 53
3.1.1 對象關(guān)系阻抗誤配 54
3.1.2 Propel 56
3.1.3 Doctrine 56
3.1.4 CakePHP的ORM 57
3.1.5 Zend_Db 57
3.1.6 其他ORM解決方案 59
3.2 數(shù)據(jù)庫配置 59
3.2.1 開放數(shù)據(jù)庫互連(ODBC) 60
3.2.2 SQLite 60
3.2.3 PostgreSQL 62
3.2.4 MySQL 63
3.2.5 Microsoft SQL Server 65
3.2.6 Oracle 68
3.2.7 DB2 69
3.3 與數(shù)據(jù)庫通信 70
3.3.1 模式 71
3.3.2 固件 76
3.3.3 命令行接口 80
第4章 使用3種框架的第一個
應(yīng)用程序 85
4.1 設(shè)計 85
4.2 Symfony 87
4.2.1 項目 87
4.2.2 模型 88
4.2.3 控制器 88
4.2.4 視圖 91
4.3 CakePHP 96
4.3.1 項目 96
4.3.2 模型 97
4.3.3 控制器 98
4.3.4 視圖 100
4.4 Zend Framework 105
4.4.1 項目 105
4.4.2 模型 106
4.4.3 控制器 113
4.4.4 視圖 118
第5章 窗體 125
5.1 字段驗證 125
5.1.1 窗體驗證的運(yùn)行過程 126
5.1.2 Symfony 128
5.1.3 CakePHP 133
5.1.4 Zend Framework 136
5.2 定制窗體 138
5.2.1 Symfony 139
5.2.2 CakePHP 149
5.2.3 Zend Framework 154
5.3 使用Captcha防止接收垃圾
郵件 163
5.3.1 問題 163
5.3.2 解決方案 165
第6章 郵件 175
6.1 創(chuàng)建郵件應(yīng)用程序 175
6.1.1 發(fā)送郵件的方法和Web
服務(wù)器 176
6.1.2 PHP配置 176
6.1.3 SMTP服務(wù)器配置 177
6.2 SwiftMailer 178
6.2.1 Symfony 178
6.2.2 CakePHP 184
6.2.3 Zend Framework 187
6.3 CakePHP的郵件組件 189
6.3.1 發(fā)送簡單的電子郵件 190
6.3.2 發(fā)送HTML電子郵件 191
6.3.3 添加附件 191
6.3.4 抄送 192
6.3.5 遠(yuǎn)程SMTP服務(wù)器 192
6.3.6 安全連接 192
6.3.7 小結(jié) 193
6.4 Zend郵件程序 194
6.4.1 發(fā)送簡單的電子郵件 194
6.4.2 發(fā)送HTML電子郵件 194
6.4.3 添加附件 195
6.4.4 抄送 195
6.4.5 遠(yuǎn)程SMTP服務(wù)器 196
6.4.6 安全連接 196
6.4.7 小結(jié) 197
6.5 PHPMailer 197
6.5.1 Symfony 198
6.5.2 CakePHP 198
6.5.3 Zend Framework 199
第7章 搜索 203
7.1 問題 203
7.1.1 全文本搜索 204
7.1.2 索引 204
7.1.3 搜索查詢 205
7.2 解決方案 206
7.2.1 Sphinx 206
7.2.2 Lucene 213
7.2.3 Google Custom Search 218
第8章 安全 221
8.1 設(shè)置安全連接 221
8.1.1 問題 222
8.1.2 配置Web服務(wù)器 223
8.1.3 Symfony 226
8.1.4 CakePHP 228
8.1.5 Zend Framework 228
8.2 保護(hù)配置文件窗體免受XSS
和注入攻擊 229
8.2.1 問題 229
8.2.2 解決方案 231
8.3 CSRF 234
8.3.1 問題 234
8.3.2 解決方案 235
第9章 模板 239
9.1 使用輔助類和Lightbox創(chuàng)建
簡單的圖像庫 239
9.1.1 表示層輔助類 241
9.1.2 Lightbox 242
9.1.3 Symfony 242
9.1.4 CakePHP 245
9.1.5 Zend Framework 247
9.2 在Web框架中使用模板
引擎 249
9.2.1 Smarty 250
9.2.2 Dwoo 255
9.2.3 Twig 258
9.3 其他增件模板引擎概述 260
9.3.1 Template Blocks 260
9.3.2 Open Power Template
(OPT) 261
9.3.3 TinyButStrong 262
9.3.4 Rain TPL 264
9.3.5 Savant 265
第10章 AJAX 269
10.1 AJAX簡介 270
10.2 自動完成 272
10.2.1 Symfony 272
10.2.2 CakePHP 274
10.2.3 Zend Framework 277
10.3 動態(tài)彈出窗口 283
10.3.1 Symfony 283
10.3.2 CakePHP 288
10.3.3 Zend Framework 291
10.4 與AJAX用戶聊天 293
10.4.1 Symfony 294
10.4.2 CakePHP 297
10.4.3 Zend Framework 300
第11章 創(chuàng)建插件 305
11.1 Symfony 305
11.1.1 插件結(jié)構(gòu) 306
11.1.2 開發(fā)插件 306
11.1.3 測試插件 308
11.2 CakePHP 309
11.2.1 插件結(jié)構(gòu) 309
11.2.2 開發(fā)插件 310
11.2.3 測試插件 312
11.3 Zend Framework 313
第12章 Web服務(wù) 315
12.1 REST風(fēng)格的新聞閱讀 315
12.1.1 REST的工作原理 316
12.1.2 Symfony 317
12.1.3 CakePHP 320
12.1.4 Zend Framework 323
12.2 在電子商務(wù)應(yīng)用程序中
應(yīng)用SOAP Web服務(wù) 329
12.2.1 為PHP安裝SOAP
擴(kuò)展 330
12.2.2 使用soapUI進(jìn)行測試 330
12.2.3 SOAP和REST之間的
不同 330
12.2.4 Symfony 331
12.2.5 CakePHP 337
12.2.6 Zend Framework 340
第13章 后端 343
13.1 Symfony 343
13.1.1 Doctrine管理模塊 344
13.1.2 Apostrophe 346
13.1.3 Diem 347
13.2 CakePHP 349
13.2.1 Croogo 349
13.2.2 Wildflower 351
13.3 Zend Framework 352
13.3.1 TomatoCMS 352
13.3.2 Pimcore 352
13.3.3 Digitalus CMS 354
13.4 功能總結(jié) 355
第14章 國際化 357
14.1 國際化的定義 357
14.2 Symfony 358
14.2.1 配置 358
14.2.2 模板 359
14.2.3 窗體 363
14.2.4 為i18n使用數(shù)據(jù)庫 364
14.2.5 增件 365
14.3 CakePHP 366
14.3.1 配置 366
14.3.2 模板 367
14.3.3 窗體 369
14.3.4 為i18n使用數(shù)據(jù)庫 370
14.3.5 增件 374
14.4 Zend Framework 374
14.4.1 配置 374
14.4.2 轉(zhuǎn)換 376
14.4.3 窗體 376
14.4.4 為i18n使用數(shù)據(jù)庫 378
14.4.5 增件 378
第15章 測試 379
15.1 測試簡介 379
15.1.1 如何開始測試 380
15.1.2 測試用例、測試套件和
測試覆蓋率 380
15.1.3 測試的種類 381
15.1.4 何時結(jié)束測試 384
15.1.5 bug是我們的朋友 385
15.1.6 固件 387
15.1.7 仿制品 387
15.1.8 測試驅(qū)動的開發(fā) 388
15.1.9 測試框架 389
15.2 使用功能測試進(jìn)行黑盒
注冊窗體測試 391
15.2.1 問題 392
15.2.2 解決方案 392
15.3 使用Selenium實現(xiàn)CMS
測試自動化 397
15.3.1 安裝Selenium IDE 397
15.3.2 安裝Selenium Remote
Control 398
15.3.3 問題 399
15.3.4 解決方案 400
15.4 郵件單元測試 407
15.4.1 問題 407
15.4.2 解決方案 409
第16章 用戶管理 415
16.1 基本用戶管理 415
16.1.1 RBAC和ACL 415
16.1.2 Symfony 417
16.1.3 CakePHP 426
16.1.4 Zend Framework 431
16.2 使用LDAP實現(xiàn)確定用戶 435
16.2.1 需求 435
16.2.2 LDAP的運(yùn)行原理 437
16.2.3 準(zhǔn)備LDAP 437
16.2.4 LDAP配置 438
16.2.5 解決方案 451
第17章 性能 459
17.1 使用JMeter進(jìn)行壓力測試、
負(fù)載測試和性能測試 459
17.2 基準(zhǔn)測試 463
17.2.1 Hello World 463
17.2.2 簡單的CRUD應(yīng)用程序 464
17.3 開發(fā)速度 464
第18章 總結(jié) 465
18.1 功能 465
18.1.1 Symfony 465
18.1.2 CakePHP 467
18.1.3 Zend Framework 467
18.1.4 功能表 468
18.2 獲勝者是… 469
附錄A Web資源 471
附錄B CodeIgniter、Lithium和Agavi
的代碼示例 477