前言
基礎(chǔ)篇
第1章 開發(fā)前準(zhǔn)
1.1 PHP與MVC概述
1.2 開發(fā)環(huán)境搭建
1.2.1 在Windows下使用一鍵安裝包
1.2.2 在Linux平臺安裝LNMP
1.3 開發(fā)工具介紹
1.3.1 PHPCoder
1.3.2 PHPEditor
1.3.3 NetBeansIDE
1.3.4 EclipsePDT
1.3.5 ZendStudio
1.3.6 AdobeDreamweaver
1.3.7 VS.PHP
1.4 SVN版本控制
1.4.1 SVN介紹
1.4.2 SVN的安裝
1.4.3 TortoiseSVN的簡單使用
1.4.4 TortoiseSVN文件管理
1.4.5 SVN版本庫權(quán)限配置
1.5 小結(jié)
第2章 面向?qū)ο蠡A(chǔ)
2.1 面向?qū)ο蠼榻B
2.2 PHP面向?qū)ο蠡A(chǔ)
2.2.1 class關(guān)鍵字
2.2.2 類中的成員
2.2.3 實例化類
2.3 類中的方法
2.3.1 方法的參數(shù)
2.3.2 方法的返回值
2.3.3 訪問修飾符
2.3.4 $this關(guān)鍵字
2.4 類的繼承
2.4.1 子類繼承父類
2.4.2 重寫父類中的成員屬性
2.4.3 final關(guān)鍵字
2.5 靜態(tài)類成員
2.5.1 static關(guān)鍵字
2.5.2 訪問靜態(tài)類成員(self::parent::)
2.5.3 類常量
2.6 小結(jié)
第3章 類的高級特性
3.1 類對象的克。╟lone)
3.2 類接口(interface)
3.2.1 接口的意義
3.2.2 定義接口
3.2.3 實現(xiàn)接口(implements)
3.3 抽象類與抽象方法
3.3.1 理解抽象概念
3.3.2 定義抽象類和方法(abstract)
3.3.3 使用抽象類
3.3.4 接口與抽象類的區(qū)別
3.4 類的異常
3.4.1 Exception類
3.4.2 使用try、catch、throw語句
3.5 小結(jié)
實戰(zhàn)篇
第4章 PHPMVC發(fā)展?fàn)顩r
4.1 出身豪門的ZendFramework
4.1.1 ZendFramework簡介
4.1.2 安裝ZendFramework
4.1.3 使用ZendFramework實現(xiàn)MVC
4.1.4 ZendFramework核心組件
4.2 功能強大的Symfony
4.2.1 Symfony簡介
4.2.2 獲得Symfony
4.2.3 實現(xiàn)一個簡單的MVC
4.2.4 Symfony的配置文件
4.3 靈活完善的CakePHP
4.3.1 CakePHP簡介
4.3.2 下載安裝CakePHP
4.3.3 使用CakePHP構(gòu)建MVC編程
4.3.4 好用的CakePHP視圖助手
4.4 使用廣泛的CodeIgniter
4.4.1 CodeIgniter簡介
4.4.2 安裝CodeIgniter
4.4.3 使用CodeIgniter實現(xiàn)MVC
4.5 高效便捷的ThinkPHP
4.5.1 ThinkPHP介紹
4.5.2 下載安裝ThinkPHP
4.5.3 使用ThinkPHP實現(xiàn)MVC
4.5.4 高效的ThinkPHP視圖引擎
4.6 小結(jié)
第5章 ThinkPHP開發(fā)入門
5.1 大道至簡、開發(fā)由我
5.1.1 入口文件
5.1.2 兩種創(chuàng)建項目的方式
5.1.3 模塊分組
5.2 ThinkPHP目錄
5.2.1 系統(tǒng)目錄
5.2.2 項目目錄
5.3 配置文件
5.3.1 選項配置
5.3.2 靜態(tài)緩存配置
5.3.3 路由配置
5.4 小結(jié)
第6章 ThinkPHP開發(fā)MVC應(yīng)用
6.1 ThinkPHP中的URL
6.1.1 URL模式
6.1.2 URL路由
6.1.3 自動生成匹配的URL
6.1.4 實現(xiàn)文件偽靜態(tài)
6.2 模型(Model)
6.2.1 創(chuàng)建模型
6.2.2 實例化模型
6.2.3 模型初始化(_initialize())
6.3 控制器(Controller)
6.3.1 創(chuàng)建控制器
6.3.2 控制器中的動作(Action)
6.3.3 控制器的調(diào)用
6.3.4 項目空控制器與控制器空動作
6.3.5 動作的前后操作
6.4 視圖(View)
6.4.1 創(chuàng)建和使用視圖
6.4.2 系統(tǒng)變量與常量
6.4.3 在視圖中使用函數(shù)
6.4.4 數(shù)據(jù)循環(huán)
6.4.5 條件判斷
6.4.6 使用外部文件
6.4.7 導(dǎo)入標(biāo)簽庫
6.4.8 使用布局
6.5 小結(jié)
第7章 ThinkPHP的數(shù)據(jù)庫操作
7.1 定義數(shù)據(jù)表模型
7.1.1 模型映射
7.1.2 自定義模型
7.1.3 create方法
7.1.4 模型屬性
7.2 基礎(chǔ)模型(Model)
7.2.1 連貫操作
7.2.2 CURD
7.2.3 查詢語言
7.2.4 使用原生的SQL語言
7.3 關(guān)聯(lián)模型(RelationModel)
7.3.1 關(guān)聯(lián)關(guān)系
7.3.2 關(guān)聯(lián)定義
7.3.3 關(guān)聯(lián)模型的CURD
7.4 高級模型(AdvModel)
7.4.1 定位查詢
7.4.2 動態(tài)查詢
7.4.3 內(nèi)容存文本
7.5 大數(shù)據(jù)支持
7.5.1 分布式數(shù)據(jù)庫
7.5.2 讀寫分離
7.5.3 數(shù)據(jù)表分區(qū)
7.6 小結(jié)
第8章 安全與調(diào)試
8.1 構(gòu)建穩(wěn)健及安全的MVC
8.2 ThinkPHP內(nèi)置的安全機制
8.2.1 表單令牌
8.2.2 字段檢測
8.2.3 數(shù)據(jù)驗證
8.2.4 數(shù)據(jù)驗證碼
8.3 ThinkPHP安全日志機制
8.3.1 記錄方式
8.3.2 系統(tǒng)日志
8.3.3 應(yīng)用日志
8.4 使用消息隊列機制
8.4.1 HTTPSQS基礎(chǔ)
8.4.2 安裝HTTPSQS
8.4.3 測試HTTPSQS
8.4.4 在MVC中使用HTTPSQS
8.5 ThinkPHP程序調(diào)試機制
8.5.1 開啟調(diào)試功能
8.5.2 代碼編譯概念
8.5.3 異常定制
8.5.4 性能調(diào)試
8.6 小結(jié)
第9章 ThinkPHP功能庫
9.1 數(shù)據(jù)處理
9.1.1 XML引擎
9.1.2 返回XML
9.1.3 返回Json
9.1.4 使用Json及Jsonp
9.2 ThinkPHP函數(shù)庫
9.2.1 快捷方法
9.2.2 基礎(chǔ)函數(shù)庫
9.2.3 擴展函數(shù)庫
9.3 ThinkPHP多語言支持
9.3.1 部署多語言
9.3.2 實現(xiàn)多語言
9.3.3 多語言與客戶端
9.4 客戶端
9.4.1 封裝的Session
9.4.2 封裝的Cookie
9.5 小結(jié)
第10章 網(wǎng)站靜態(tài)化
10.1 Cache類
10.1.1 緩存的方式
10.1.2 開啟緩存
10.1.3 安裝Memcached
10.1.4 使用Memcached
10.2 Memcached實戰(zhàn)應(yīng)用
10.2.1 頁面局部緩存
10.2.2 緩存數(shù)據(jù)集
10.2.3 使用Memcache存放Session
10.3 使用Redis緩存
10.3.1 Redis的安裝
10.3.2 安裝Redis擴展
10.3.3 測試Redis
10.3.4 Redis緩存
10.4 靜態(tài)緩存
10.4.1 靜態(tài)緩存配置
10.4.2 靜態(tài)緩存規(guī)則
10.5 小結(jié)
第11章 ThinkPHP擴展
11.1 使用擴展
11.1.1 擴展的分類
11.1.2 模板引擎擴展
11.2 網(wǎng)絡(luò)操作
11.2.1 文件上傳
11.2.2 Nginx文件上傳進度
11.2.3 FTP文件上傳
11.2.4 下載文件
11.2.5 Socket套接字編程
11.2.6 定位當(dāng)前位置
11.2.7 發(fā)送電子郵件
11.3 數(shù)據(jù)處理
11.3.1 數(shù)據(jù)加密
11.3.2 數(shù)據(jù)編碼轉(zhuǎn)換
11.3.3 數(shù)據(jù)分頁
11.3.4 日期數(shù)據(jù)
11.3.5 Input類
11.3.6 GD庫繪制圖形
11.4 行為擴展
11.4.1 行為概述
11.4.2 內(nèi)置行為擴展
11.4.3 自定義行為擴展
11.5 小結(jié)
第12章 SOAP分布式開發(fā)
12.1 分布式開發(fā)概念
12.1.1 SOA與SOAP
12.1.2 PHP5分布式開發(fā)
12.2 SOAP消息體
12.2.1 WSDL文件
12.2.2 定義根消息體definitions
12.2.3 type類型
12.2.4 portType端口類型
12.2.5 message消息列表
12.2.6 binding服務(wù)綁定描述
12.2.7 service服務(wù)描述
12.2.8 可視化創(chuàng)建WSDL
12.2.9 使用nusoap創(chuàng)建WSDL
12.2.1 0ThinkPHP生成SOAP服務(wù)
12.3 使用soapUI測試WSDL
12.3.1 soapUI簡介
12.3.2 安裝soapUI
12.3.3 創(chuàng)建項目
12.3.4 測試項目
12.3.5 負載測試
12.4 小結(jié)
第13章 整合Smarty模板引擎
13.1 Smarty模板引擎介紹
13.2 使用Smarty
13.2.1 在PHP中使用Smarty
13.2.2 開啟ThinkPHP模板擴展
13.2.3 以擴展的方式使用全功能Smarty
13.3 Smarty模板函數(shù)和標(biāo)簽
13.3.1 include(包含文件)
13.3.2 capture(暫存數(shù)據(jù))
13.3.3 include_php(包含PHP文件)
13.3.4 insert(插入函數(shù))
13.3.5 literal(原文本輸出)
13.3.6 php(執(zhí)行PHP語句塊)
13.3.7 strip(保留空格和回車符)
13.4 Smarty模板控制語句
13.4.1 if、elseif(判斷語句)
13.4.2 foreach(循環(huán)數(shù)據(jù))
13.4.3 section(遍歷數(shù)組)
13.5 變量調(diào)節(jié)器
13.5.1 capitalize(首字母大寫)
13.5.2 count_characters(統(tǒng)計字符)
13.5.3 count_paragraphs(統(tǒng)計段落)
13.5.4 count_sentences(統(tǒng)計句數(shù))
13.5.5 count_words(統(tǒng)計單詞)
13.5.6 date_format(格式化日期)
13.5.7 escape(字符轉(zhuǎn)碼)
13.5.8 replace(字符替換)
13.5.9 regex_replace(正則替換)
13.5.1 0truncate(字符截。
13.6 視圖助手
13.6.1 html_image(生成圖像)
13.6.2 html_options(生成表單選擇組件)
13.6.3 html_radios(生成表單單選組件)
13.6.4 html_checkboxes(生成表單復(fù)選組件)
13.6.5 html_select_date(生成表單日期選擇組件)
13.6.6 html_select_time(生成表單時間選擇組件)
13.6.7 html_table(生成表格)
13.7 Smarty對象方法
13.7.1 display(顯示模板)
13.7.2 fetch(獲取輸出內(nèi)容)
13.7.3 configLoad(加載配置信息)
13.7.4 registerPlugin(注冊插件)
13.8 Smarty緩存
13.8.1 開啟緩存
13.8.2 局部緩存
13.9 小結(jié)
第14章 整合Coreseek全文搜索服務(wù)
14.1 全文索引概述
14.2 Coreseek基礎(chǔ)
14.2.1 Coreseek概述
14.2.2 在Windows下安裝Coreseek
14.2.3 在Linux下安裝Coreseek
14.3 Coreseek管理工具
14.3.1 indexer
14.3.2 searchd
14.3.3 search
14.4 創(chuàng)建索引
14.4.1 索引源分類
14.4.2 增量索引
14.4.3 實時索引
14.5 在MVC中搜索數(shù)據(jù)
14.5.1 安裝Sphinx擴展模塊
14.5.2 使用PHP接口
14.5.3 在MVC中搜索數(shù)據(jù)
14.5.4 實現(xiàn)關(guān)鍵詞高亮顯示
14.6 小結(jié)
第15章 使用MongoDB
15.1 MongoDB介紹
15.2 MongoDB的安裝
15.2.1 在Windows下安裝MongoDB
15.2.2 在Linux下安裝MongoDB
15.3 MongoDB的使用
15.3.1 理解MongoDB的數(shù)據(jù)結(jié)構(gòu)
15.3.2 數(shù)據(jù)庫管理
15.3.3 文檔數(shù)據(jù)類型
15.3.4 插入數(shù)據(jù)
15.3.5 查詢數(shù)據(jù)
15.3.6 更新數(shù)據(jù)
15.3.7 刪除數(shù)據(jù)
15.4 條件操作
15.4.1 條件判斷語句
15.4.2 $all匹配全部
15.4.3 $exists檢查字段
15.4.4 null空值處理
15.4.5 $ne比較
15.4.6 $mod取模運算
15.4.7 $in、nin枚舉查詢
15.4.8 $or、$nor判斷查詢
15.4.9 $type映射查詢
15.4.1 0使用正則表達式匹配
15.4.1 1limit、skip限制查詢
15.4.1 2count查詢記錄條數(shù)
15.4.1 3sort查詢結(jié)果排序
15.5 性能優(yōu)化
15.5.1 使用索引
15.5.2 固定集合
15.5.3 GridFS
15.5.4 Profile優(yōu)化器
15.6 在MVC中使用MongoDB
15.6.1 安裝PHP擴展
15.6.2 開啟MongoDB用戶驗證
15.6.3 ThinkPHP操作MongoDB
15.7 小結(jié)
第16章 Redis實戰(zhàn)
16.1 Redis的使用
16.1.1 Redis概述
16.1.2 常用管理命令
16.1.3 Redis用戶驗證
16.2 Redis數(shù)據(jù)類型
16.2.1 String類型
16.2.2 Hash類型
16.2.3 List類型
16.2.4 Sets類型
16.2.5 Zset類型
16.2.6 使用phpRedisAdmin
16.3 Redis高級使用
16.3.1 數(shù)據(jù)持久化
16.3.2 虛擬內(nèi)存
16.3.3 事務(wù)處理
16.3.4 主從同步
16.4 在MVC中使用Redis
16.4.1 在PHP中使用Redis
16.4.2 在MVC中進行CURD操作
16.4.3 數(shù)據(jù)分頁
16.5 小結(jié)
項目篇
第17章 開發(fā)論壇系統(tǒng)
17.1 開發(fā)前準(zhǔn)備
17.1.1 系統(tǒng)介紹
17.1.2 系統(tǒng)預(yù)覽
17.1.3 架構(gòu)設(shè)計
17.1.4 系統(tǒng)部署
17.2 系統(tǒng)整體界面設(shè)計
17.2.1 布局方案
17.2.2 論壇首頁
17.2.3 論壇版塊
17.3 用戶模塊
17.3.1 用戶登錄
17.3.2 用戶注冊
17.3.3 使用微博賬號登錄
17.3.4 將現(xiàn)有賬號綁定到微博
17.4 發(fā)表帖子模塊
17.4.1 整合百度編輯器
17.4.2 上傳圖片
17.4.3 管理圖片
17.4.4 上傳附件
17.4.5 數(shù)據(jù)提交處理
17.5 帖子內(nèi)容模塊
17.5.1 帖子正文
17.5.2 回復(fù)列表
17.5.3 回復(fù)帖子
17.6 帖子管理模塊
17.6.1 刪除帖子
17.6.2 鎖定帖子
17.6.3 置頂帖子
17.6.4 推薦帖子
17.7 行為攔截器
17.7.1 統(tǒng)計瀏覽量
17.7.2 登記瀏覽位置
17.8 帖子搜索模塊
17.8.1 標(biāo)題搜索
17.8.2 使用全文搜索
17.9 小結(jié)
第18章 開發(fā)自己的MVC框架
18.1 開發(fā)前準(zhǔn)備
18.1.1 開發(fā)MVC框架的思路
18.1.2 文件結(jié)構(gòu)
18.2 核心類庫
18.2.1 初始化
18.2.2 URL處理
18.3 控制器的開發(fā)
18.3.1 類自動載入
18.3.2 加載模板引擎(View)
18.3.3 處理消息(message)
18.4 模型的開發(fā)
18.4.1 使用PDO
18.4.2 模型實例化
18.4.3 實現(xiàn)連貫操作
18.4.4 讀取數(shù)據(jù)
18.4.5 插入數(shù)據(jù)
18.4.6 更新數(shù)據(jù)
18.4.7 刪除數(shù)據(jù)
18.5 擴展類庫
18.5.1 Session驅(qū)動擴展
18.5.2 緩存驅(qū)動擴展
18.6 測試MVC框架
18.6.1 創(chuàng)建項目
18.6.2 測試CURD
18.6.3 測試驅(qū)動
18.7 小結(jié)
附錄
附錄A 讓Nginx支持Pathinfo模式
附錄B 配置團隊開發(fā)環(huán)境