PHP Web 2.0開發實戰

PHP Web 2.0開發實戰

《PHPWeb2.0開發實戰》是由澤瓦斯編著的計算機套用技術類書籍;該書由人民郵電出版社於2008年出版發行。本書通過一個完整的Web 2.0套用——帶有動態圖庫、搜尋和地圖功能的部落格系統詳細介紹了Web開發的全過程。首先討論了Web套用的規劃與設計,然後逐章實現各個具體特性,包括網站主頁、用戶主頁、用戶註冊頁面、賬戶登錄和管理頁面、用戶部落格系統、網站搜尋以及套用管理等,最後介紹部署和維護。本書適合中、高級的PHP程式設計師閱讀。

編輯推薦

Amazon五星圖書,從零開始開發完整的典型Web 2.0套用,迅速提升你的Web開發功力。

“讀完本書後,我發現自己對Web開發和MVC模式的理解都已經今非昔比……強烈推薦此書!”

——Amazon. com

“……一部極富啟發性的PHP實戰指導書,業界專家充分演示了如何使用Zend Framework、Smarty、Ajax等強大技術創建一 流的網站。”

——Slashdot. org

PHP已經成為主流Web開發語言。支撐著全球翹楚Facebook、Wikipedia在內的眾多網站。然而,要在Web2.0時代取得競爭優勢,PHP程式設計師面臨著更大挑戰,僅僅掌握語言本身,遠遠不夠實戰所需。

本書由資深PHP專家撰寫,不在基礎知識上花費太多筆墨,而是引導讀者從設計、規劃開始。綜合運用PHP、MySQL、CSS、HTML、JavaScript/Ajax等技術,實現各種必需的Web 2.0特性,最終完成一個完整的典型Web 2.0套用——功能豐富的多用戶部落格系統。書中提供了大量具有示範意義的代碼,讀者將直觀地學到如何實際開發出用戶登錄、部落格、搜尋功能、動態圖庫、Google Maps集成、標籤、Web提要等功能,如何在實戰中套用Zend Framework、Smarty模板引擎、Prototype等JavaScript/Ajax框架以及微格式等技術。

作者簡介

Quentin Zervaas,資深PHP程式設計師。曾為世界各地眾多客戶開發了許多Web套用,其中Recite CMS已經用於澳大利亞許多大公司。他還是知名PHP開發資源網站PhpRiot的維護者。  

目錄

第1章 套用規劃與設計

1.1 什麼是Web 2.0

1.2 資料庫連線

1.3 網站模板

1.4 網站特性

1.4.1 網站主頁和用戶主頁

1.4.2 用戶註冊

1.4.3 賬戶登錄和管理

1.4.4 用戶部落格

1.4.5 網站搜尋

1.4.6 套用管理

1.5 開發的其他方面

1.5.1 搜尋引擎最佳化

1.5.2 PHPDoc風格的注釋

1.5.3 安全性

1.5.4 套用日誌

1.5.5 可維護性和可擴展性

1.6 版本控制和單元測試

1.7 小結

第2章 建立套用框架

2.1 Web伺服器配置

2.1.1 作業系統

2.1.2 安裝Apache HTTP伺服器

2.1.3 安裝MySQL 5

2.1.4 安裝PHP 5.2.3

2.2 套用檔案系統結構

2.2.1 Web根目錄

2.2.2 數據存儲目錄

2.2.3 PHP類目錄

2.2.4 模板目錄

2.2.5 完整的目錄結構

2.3 安裝Zend框架

2.4 配置Web伺服器

2.4.1 在Linux上創建虛擬主機

2.4.2 在Windows上創建虛擬主機

2.4.3 重啟Web伺服器

2.5 建立資料庫

2.6 使用MVC模式

2.6.1 將套用邏輯與表示邏輯分離

2.6.2 將所有請求定向到index.php

2.6.3 Zend_Controller類簡介

2.6.4 Zend_Controller如何處理請求

2.6.5 創建IndexController

2.7 定義套用設定

2.8 連線資料庫

2.9 Smarty模板引擎

2.9.1 為什麼不使用其他模板引擎

2.9.2 下載和安裝Smarty

2.9.3 利用Zend_Controller自動顯示視圖

2.9.4 Smarty與網站控制器集成

2.10 增加日誌功能

2.11 小結

第3章 用戶認證、授權和管理

3.1 創建用戶資料庫表

3.1.1 時間戳

3.1.2 用戶個性化信息

3.2 Zend_Auth簡介

3.2.1 實例化Zend_Auth

3.2.2 使用Zend_Auth完成認證

3.3 Zend_Acl簡介

3.4 結合Zend_Auth、Zend_Acl和Zend_Controller_Front

3.5 用DatabaseObject管理用戶記錄

3.5.1 DatabaseObject_User類

3.5.2 使用DatabaseObject_User

3.6 管理用戶個性化信息

3.6.1 使用Profile_User

3.6.2 集成Profile_User和DatabaseObject_User

3.7 小結

第4章 用戶註冊、登錄和註銷

4.1 為套用增加用戶註冊功能

4.1.1 為用戶註冊創建表單處理器

4.1.2 顯示註冊表單並處理註冊

4.1.3 為用戶註冊表單增加CAPTCHA

4.1.4 增加E-mail功能

4.2 實現賬戶登錄和註銷

4.2.1 創建登錄模板

4.2.2 增加account控制器login動作

4.2.3 記錄成功和失敗登錄

4.2.4 用戶註銷賬戶

4.3 處理忘記口令的情況

4.3.1 重置用戶口令

4.3.2 重置口令的函式

4.4 實現賬戶管理

4.4.1 創建賬戶主頁

4.4.2 更新網站導航

4.4.3 允許用戶更新信息

4.5 小結

第5章 Prototype與Scriptaculous簡介

5.1 下載和安裝Prototype

5.2 選擇文檔對象模型中的對象

5.2.1 $()函式

5.2.2 getElementsByClassName()函式

5.2.3 $$()函式

5.2.4 getElementsBySelector()函式

5.3 Prototype的Hash對象

5.4 其他元素擴展

5.4.1 顯示和隱藏元素

5.4.2 獲取元素尺寸

5.4.3 管理元素類

5.4.4 用Prototype管理字元串

5.5 Prototype中的Ajax操作

5.5.1 Ajax請求選項

5.5.2 Ajax回調函式

5.5.3 JSON

5.5.4 一個Ajax.Request例子

5.6 Prototype中的事件處理

5.6.1 觀察事件

5.6.2 查找事件出現 在哪個元素上

5.6.3 取消事件

5.7 利用Prototype創建JavaScript類

5.7.1 創建類

5.7.2 為函式調用綁定對象

5.8 從Prototype轉向Scriptaculous

5.8.1 預置控制項

5.8.2 拖放

5.8.3 視覺效果

5.8.4 DOM元素構建器

5.8.5 JavaScript單元測試

5.9 下載和安裝Scriptaculous

5.10 在一個實用例子中結合使用Prototype、Scriptaculous、Ajax和PHP

5.10.1 創建主HTML頁面:index.php

5.10.2 為套用設定樣式:styles.css

5.10.3 創建和填充資料庫:schema.sql

5.10.4 伺服器端管理列表項:items.php

5.10.5 在伺服器端處理Ajax請求:processor.php

5.10.6 創建客戶端套用邏輯:scripts.js

5.11 小結

第6章 為Web套用設定樣式

6.1 增加頁面標題和瀏覽路徑

6.1.1 Breadcrumbs類

6.1.2 生成URL

6.1.3 為各個控制器動作設定標題和瀏覽路徑

6.1.4 創建一個Smarty外掛程式輸出瀏覽路徑

6.1.5 顯示頁面標題

6.2 在套用中集成設計

6.2.1 創建靜態HTML

6.2.2 將HTML標記移入Smarty模板

6.3 構建CSS

6.3.1 指定媒體類型和載入CSS檔案

6.3.2 創建套用CSS

6.3.3 創建只列印樣式表

6.3.4 完整的套用樣式表

6.4 為套用Web表單設定樣式

6.5 載入Prototype和Scriptaculous

6.6 實現客戶端表單驗證

6.6.1 為CustomControllerAction類增加JSON支持

6.6.2 修改表單處理器

6.6.3 修改註冊控制器動作

6.6.4 創建JavaScript表單驗證器

6.6.5 載入UserRegistrationForm類

6.7 小結

第7章 構建部落格系統

7.1 創建資料庫表

7.2 建立DatabaseObject和Profile類

7.2.1 創建DatabaseObject_BlogPost類

7.2.2 創建Profile_BlogPost類

7.3 創建控制器管理部落格帖子

7.3.1 擴展套用許可權

7.3.2 BlogmanagerController動作

7.3.3 連結部落格管理系統

7.4 創建和編輯部落格帖子

7.4.1 創建部落格帖子提交表單模板

7.4.2 在editAction()中實例化FormProcessor_BlogPost

7.4.3 實現FormProcessor_BlogPost類

7.4.4 為部落格帖子生成一個永久連結

7.4.5 過濾提交的HTML

7.4.6 創建一個新部落格帖子

7.5 預覽部落格帖子

7.5.1 創建預覽動作

7.5.2 實現預覽模板

7.5.3 請求對用戶動作的確認

7.6 更新部落格帖子的狀態

7.6.1 完成setstatusAction()

7.6.2 通知用戶

7.7 小結

第8章 擴展部落格管理系統

8.1 在部落格管理系統索引頁面上列出帖子

8.1.1 從資料庫獲取部落格帖子

8.1.2 將最新帖子和各月概要賦給模板

8.1.3 在模板中顯示最新帖子

8.1.4 顯示各月概要

8.2 為部落格各月概要增加Ajax功能

8.2.1 創建Ajax請求輸出

8.2.2 BlogMonthlySummary JavaScript類

8.2.3 安裝BlogMonthlySummary類

8.2.4 通知用戶內容已更新

8.3 集成WYSIWYG編輯器

8.3.1 下載並安裝FCKeditor

8.3.2 配置FCKeditor

8.3.3 在部落格編輯頁面中載入FCKeditor

8.4 小結

第9章 個人化用戶區

9.1 控制用戶設定

9.1.1 為用戶提供定製設定

9.1.2 處理對用戶設定的修改

9.1.3 創建默認用戶設定

9.2 UserController類

9.2.1 將請求路由到UserController

9.2.2 處理對UserController的請求

9.3 顯示用戶的部落格

9.3.1 顯示部落格索引頁面

9.3.2 顯示單個部落格帖子

9.3.3 生成部落格歸檔連結

9.3.4 顯示各月歸檔

9.4 填充套用主頁

9.4.1 載入最新公開帖子

9.4.2 實現套用主頁

9.5 小結

第10章 實現Web 2.0特性

10.1 標籤

10.1.1 實現標籤系統

10.1.2 管理部落格帖子標籤

10.1.3 在用戶部落格上顯示用戶的標籤

10.1.4 顯示標籤空間

10.1.5 在各帖子上顯示標籤

10.2 Web提要

10.2.1 Web提要的數據格式

10.2.2 用Zend_Feed創建一個Atom提要

10.2.3 為UserController增加提要

10.2.4 連結到提要

10.2.5 其他提要選項

10.3 微格式

10.3.1 使用微格式的例子

10.3.2 為什麼使用微格式

10.3.3 對標籤標記微格式

10.4 允許用戶創建公開個性化數據

10.4.1 允許用戶創建公開個性化數據

10.4.2 顯示用戶的個性化數據

10.5 小結

第11章 一個動態圖庫

11.1 存儲上傳檔案

11.1.1 為圖像數據創建資料庫表

11.1.2 用DatabaseObject控制上傳圖像

11.2 上傳檔案

11.2.1 設定表單編碼

11.2.2 增加表單

11.2.3 指定檔案輸入類型

11.2.4 設定最大檔案大小

11.2.5 處理上傳檔案

11.3 傳送圖像

11.4 調整圖像大小

11.4.1 創建縮略圖

11.4.2 將縮略圖生成工具連結到圖像動作處理程式

11.5 管理部落格帖子圖像

11.5.1 自動載入部落格帖子圖像

11.5.2 在帖子預覽頁面上顯示圖像

11.5.3 刪除部落格帖子圖像

11.5.4 使用Scriptaculous和Ajax刪除圖像

11.5.5 刪除帖子時刪除圖像

11.5.6 重排部落格帖子圖像的順序

11.6 在用戶部落格上顯示圖像

11.6.1 擴展GetPosts()函式

11.6.2 在部落格索引頁面上顯示縮略圖

11.6.3 在部落格詳細信息頁面上顯示圖像

11.6.4 用Lightbox顯示更大的圖像

11.7 小結

第12章 實現網站搜尋

12.1 Zend_Search_Lucene簡介

12.1.1 與MySQL全文索引比較

12.1.2 Zend_Search_Lucene欄位類型

12.1.3 欄位命名

12.2 建立套用內容的索引

12.2.1 對多種類型的數據建立索引

12.2.2 創建新Zend_Search_Lucene_Document

12.2.3 獲取索引位置

12.2.4 構建完整索引

12.2.5 對一個部落格帖子建立索引和解除索引

12.2.6 觸發搜尋索引更新

12.3 創建搜尋工具

12.3.1 增加搜尋表單

12.3.2 處理搜尋請求

12.3.3 查詢搜尋索引

12.3.4 顯示搜尋結果

12.3.5 搜尋類型

12.4 為搜尋工具增加自動完成功能

12.4.1 提供搜尋建議

12.4.2 創建一個動作處理程式返回搜尋結果

12.4.3 獲取搜尋建議

12.4.4 載入SearchSuggestor類

12.4.5 顯示搜尋建議

12.4.6 為結果增加滑鼠導航

12.4.7 為結果增加鍵盤導航

12.5 小結

第13章 集成Google Maps

13.1 Google Maps特性

13.1.1 地理編碼

13.1.2 顯示地圖

13.1.3 控制地圖

13.2 集成規劃

13.2.1 Google Maps的局限性

13.2.2 瀏覽器兼容性

13.2.3 文檔和資源

13.2.4 創建Google Maps API鍵

13.3 增加位置存儲功能

13.3.1 創建資料庫表

13.3.2 創建DatabaseObject_BlogPostLocation類

13.3.3 修改部落格帖子來載入位置

13.4 創建第一個地圖

13.4.1 創建一個新部落格管理系統控制器動作

13.4.2 顯示第一個Google地圖

13.5 在地圖上管理位置

13.5.1 處理位置管理Ajax請求

13.5.2 創建地址查找表單

13.5.3 擴展BlogLocationManagerJavaScript類

13.5.4 使用BlogLocationManager

13.6 在用戶公開部落格上顯示地圖

13.6.1 使用geo微格式輸出位置

13.6.2 創建BlogLocations類

13.6.3 更新部落格帖子顯示模板

13.7 小結

第14章 部署與維護

14.1 套用日誌

14.1.1 通過E-mail向管理員通知重大錯誤

14.1.2 使用套用日誌

14.2 網站錯誤處理

14.2.1 錯誤處理的目標

14.2.2 處理分派前錯誤

14.2.3 運行時錯誤

14.3 網站管理

14.3.1 管理區特性

14.3.2 實現管理

14.4 套用部署

14.4.1 不同伺服器有不同配置

14.4.2 用rsync部署套用檔案

14.5 備份和恢復

14.5.1 導出資料庫

14.5.2 導入資料庫

14.6 小結  

相關詞條

相關搜尋

熱門詞條

聯絡我們