前言
基礎(chǔ)篇
第1章 開(kāi)發(fā)前準(zhǔn)
1.1 PHP與MVC概述
1.2 開(kāi)發(fā)環(huán)境搭建
1.2.1 在Windows下使用一鍵安裝包
1.2.2 在Linux平臺(tái)安裝LNMP
1.3 開(kāi)發(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的簡(jiǎn)單使用
1.4.4 TortoiseSVN文件管理
1.4.5 SVN版本庫(kù)權(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 類(lèi)中的成員
2.2.3 實(shí)例化類(lèi)
2.3 類(lèi)中的方法
2.3.1 方法的參數(shù)
2.3.2 方法的返回值
2.3.3 訪(fǎng)問(wèn)修飾符
2.3.4 $this關(guān)鍵字
2.4 類(lèi)的繼承
2.4.1 子類(lèi)繼承父類(lèi)
2.4.2 重寫(xiě)父類(lèi)中的成員屬性
2.4.3 final關(guān)鍵字
2.5 靜態(tài)類(lèi)成員
2.5.1 static關(guān)鍵字
2.5.2 訪(fǎng)問(wèn)靜態(tài)類(lèi)成員(self::parent::)
2.5.3 類(lèi)常量
2.6 小結(jié)
第3章 類(lèi)的高級(jí)特性
3.1 類(lèi)對(duì)象的克。╟lone)
3.2 類(lèi)接口(interface)
3.2.1 接口的意義
3.2.2 定義接口
3.2.3 實(shí)現(xiàn)接口(implements)
3.3 抽象類(lèi)與抽象方法
3.3.1 理解抽象概念
3.3.2 定義抽象類(lèi)和方法(abstract)
3.3.3 使用抽象類(lèi)
3.3.4 接口與抽象類(lèi)的區(qū)別
3.4 類(lèi)的異常
3.4.1 Exception類(lèi)
3.4.2 使用try、catch、throw語(yǔ)句
3.5 小結(jié)
實(shí)戰(zhàn)篇
第4章 PHPMVC發(fā)展?fàn)顩r
4.1 出身豪門(mén)的ZendFramework
4.1.1 ZendFramework簡(jiǎn)介
4.1.2 安裝ZendFramework
4.1.3 使用ZendFramework實(shí)現(xiàn)MVC
4.1.4 ZendFramework核心組件
4.2 功能強(qiáng)大的Symfony
4.2.1 Symfony簡(jiǎn)介
4.2.2 獲得Symfony
4.2.3 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的MVC
4.2.4 Symfony的配置文件
4.3 靈活完善的CakePHP
4.3.1 CakePHP簡(jiǎn)介
4.3.2 下載安裝CakePHP
4.3.3 使用CakePHP構(gòu)建MVC編程
4.3.4 好用的CakePHP視圖助手
4.4 使用廣泛的CodeIgniter
4.4.1 CodeIgniter簡(jiǎn)介
4.4.2 安裝CodeIgniter
4.4.3 使用CodeIgniter實(shí)現(xiàn)MVC
4.5 高效便捷的ThinkPHP
4.5.1 ThinkPHP介紹
4.5.2 下載安裝ThinkPHP
4.5.3 使用ThinkPHP實(shí)現(xiàn)MVC
4.5.4 高效的ThinkPHP視圖引擎
4.6 小結(jié)
第5章 ThinkPHP開(kāi)發(fā)入門(mén)
5.1 大道至簡(jiǎn)、開(kāi)發(fā)由我
5.1.1 入口文件
5.1.2 兩種創(chuàng)建項(xiàng)目的方式
5.1.3 模塊分組
5.2 ThinkPHP目錄
5.2.1 系統(tǒng)目錄
5.2.2 項(xiàng)目目錄
5.3 配置文件
5.3.1 選項(xiàng)配置
5.3.2 靜態(tài)緩存配置
5.3.3 路由配置
5.4 小結(jié)
第6章 ThinkPHP開(kāi)發(fā)MVC應(yīng)用
6.1 ThinkPHP中的URL
6.1.1 URL模式
6.1.2 URL路由
6.1.3 自動(dòng)生成匹配的URL
6.1.4 實(shí)現(xiàn)文件偽靜態(tài)
6.2 模型(Model)
6.2.1 創(chuàng)建模型
6.2.2 實(shí)例化模型
6.2.3 模型初始化(_initialize())
6.3 控制器(Controller)
6.3.1 創(chuàng)建控制器
6.3.2 控制器中的動(dòng)作(Action)
6.3.3 控制器的調(diào)用
6.3.4 項(xiàng)目空控制器與控制器空動(dòng)作
6.3.5 動(dòng)作的前后操作
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)簽庫(kù)
6.4.8 使用布局
6.5 小結(jié)
第7章 ThinkPHP的數(shù)據(jù)庫(kù)操作
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 查詢(xún)語(yǔ)言
7.2.4 使用原生的SQL語(yǔ)言
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 高級(jí)模型(AdvModel)
7.4.1 定位查詢(xún)
7.4.2 動(dòng)態(tài)查詢(xún)
7.4.3 內(nèi)容存文本
7.5 大數(shù)據(jù)支持
7.5.1 分布式數(shù)據(jù)庫(kù)
7.5.2 讀寫(xiě)分離
7.5.3 數(shù)據(jù)表分區(qū)
7.6 小結(jié)
第8章 安全與調(diào)試
8.1 構(gòu)建穩(wěn)健及安全的MVC
8.2 ThinkPHP內(nèi)置的安全機(jī)制
8.2.1 表單令牌
8.2.2 字段檢測(cè)
8.2.3 數(shù)據(jù)驗(yàn)證
8.2.4 數(shù)據(jù)驗(yàn)證碼
8.3 ThinkPHP安全日志機(jī)制
8.3.1 記錄方式
8.3.2 系統(tǒng)日志
8.3.3 應(yīng)用日志
8.4 使用消息隊(duì)列機(jī)制
8.4.1 HTTPSQS基礎(chǔ)
8.4.2 安裝HTTPSQS
8.4.3 測(cè)試HTTPSQS
8.4.4 在MVC中使用HTTPSQS
8.5 ThinkPHP程序調(diào)試機(jī)制
8.5.1 開(kāi)啟調(diào)試功能
8.5.2 代碼編譯概念
8.5.3 異常定制
8.5.4 性能調(diào)試
8.6 小結(jié)
第9章 ThinkPHP功能庫(kù)
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ù)庫(kù)
9.2.1 快捷方法
9.2.2 基礎(chǔ)函數(shù)庫(kù)
9.2.3 擴(kuò)展函數(shù)庫(kù)
9.3 ThinkPHP多語(yǔ)言支持
9.3.1 部署多語(yǔ)言
9.3.2 實(shí)現(xiàn)多語(yǔ)言
9.3.3 多語(yǔ)言與客戶(hù)端
9.4 客戶(hù)端
9.4.1 封裝的Session
9.4.2 封裝的Cookie
9.5 小結(jié)
第10章 網(wǎng)站靜態(tài)化
10.1 Cache類(lèi)
10.1.1 緩存的方式
10.1.2 開(kāi)啟緩存
10.1.3 安裝Memcached
10.1.4 使用Memcached
10.2 Memcached實(shí)戰(zhàn)應(yīng)用
10.2.1 頁(yè)面局部緩存
10.2.2 緩存數(shù)據(jù)集
10.2.3 使用Memcache存放Session
10.3 使用Redis緩存
10.3.1 Redis的安裝
10.3.2 安裝Redis擴(kuò)展
10.3.3 測(cè)試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擴(kuò)展
11.1 使用擴(kuò)展
11.1.1 擴(kuò)展的分類(lèi)
11.1.2 模板引擎擴(kuò)展
11.2 網(wǎng)絡(luò)操作
11.2.1 文件上傳
11.2.2 Nginx文件上傳進(jìn)度
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ù)分頁(yè)
11.3.4 日期數(shù)據(jù)
11.3.5 Input類(lèi)
11.3.6 GD庫(kù)繪制圖形
11.4 行為擴(kuò)展
11.4.1 行為概述
11.4.2 內(nèi)置行為擴(kuò)展
11.4.3 自定義行為擴(kuò)展
11.5 小結(jié)
第12章 SOAP分布式開(kāi)發(fā)
12.1 分布式開(kāi)發(fā)概念
12.1.1 SOA與SOAP
12.1.2 PHP5分布式開(kāi)發(fā)
12.2 SOAP消息體
12.2.1 WSDL文件
12.2.2 定義根消息體definitions
12.2.3 type類(lèi)型
12.2.4 portType端口類(lèi)型
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測(cè)試WSDL
12.3.1 soapUI簡(jiǎn)介
12.3.2 安裝soapUI
12.3.3 創(chuàng)建項(xiàng)目
12.3.4 測(cè)試項(xiàng)目
12.3.5 負(fù)載測(cè)試
12.4 小結(jié)
第13章 整合Smarty模板引擎
13.1 Smarty模板引擎介紹
13.2 使用Smarty
13.2.1 在PHP中使用Smarty
13.2.2 開(kāi)啟ThinkPHP模板擴(kuò)展
13.2.3 以擴(kuò)展的方式使用全功能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語(yǔ)句塊)
13.3.7 strip(保留空格和回車(chē)符)
13.4 Smarty模板控制語(yǔ)句
13.4.1 if、elseif(判斷語(yǔ)句)
13.4.2 foreach(循環(huán)數(shù)據(jù))
13.4.3 section(遍歷數(shù)組)
13.5 變量調(diào)節(jié)器
13.5.1 capitalize(首字母大寫(xiě))
13.5.2 count_characters(統(tǒng)計(jì)字符)
13.5.3 count_paragraphs(統(tǒng)計(jì)段落)
13.5.4 count_sentences(統(tǒng)計(jì)句數(shù))
13.5.5 count_words(統(tǒng)計(jì)單詞)
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(生成表單時(shí)間選擇組件)
13.6.7 html_table(生成表格)
13.7 Smarty對(duì)象方法
13.7.1 display(顯示模板)
13.7.2 fetch(獲取輸出內(nèi)容)
13.7.3 configLoad(加載配置信息)
13.7.4 registerPlugin(注冊(cè)插件)
13.8 Smarty緩存
13.8.1 開(kāi)啟緩存
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 索引源分類(lèi)
14.4.2 增量索引
14.4.3 實(shí)時(shí)索引
14.5 在MVC中搜索數(shù)據(jù)
14.5.1 安裝Sphinx擴(kuò)展模塊
14.5.2 使用PHP接口
14.5.3 在MVC中搜索數(shù)據(jù)
14.5.4 實(shí)現(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ù)庫(kù)管理
15.3.3 文檔數(shù)據(jù)類(lèi)型
15.3.4 插入數(shù)據(jù)
15.3.5 查詢(xún)數(shù)據(jù)
15.3.6 更新數(shù)據(jù)
15.3.7 刪除數(shù)據(jù)
15.4 條件操作
15.4.1 條件判斷語(yǔ)句
15.4.2 $all匹配全部
15.4.3 $exists檢查字段
15.4.4 null空值處理
15.4.5 $ne比較
15.4.6 $mod取模運(yùn)算
15.4.7 $in、nin枚舉查詢(xún)
15.4.8 $or、$nor判斷查詢(xún)
15.4.9 $type映射查詢(xún)
15.4.1 0使用正則表達(dá)式匹配
15.4.1 1limit、skip限制查詢(xún)
15.4.1 2count查詢(xún)記錄條數(shù)
15.4.1 3sort查詢(xún)結(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擴(kuò)展
15.6.2 開(kāi)啟MongoDB用戶(hù)驗(yàn)證
15.6.3 ThinkPHP操作MongoDB
15.7 小結(jié)
第16章 Redis實(shí)戰(zhàn)
16.1 Redis的使用
16.1.1 Redis概述
16.1.2 常用管理命令
16.1.3 Redis用戶(hù)驗(yàn)證
16.2 Redis數(shù)據(jù)類(lèi)型
16.2.1 String類(lèi)型
16.2.2 Hash類(lèi)型
16.2.3 List類(lèi)型
16.2.4 Sets類(lèi)型
16.2.5 Zset類(lèi)型
16.2.6 使用phpRedisAdmin
16.3 Redis高級(jí)使用
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中進(jìn)行CURD操作
16.4.3 數(shù)據(jù)分頁(yè)
16.5 小結(jié)
項(xiàng)目篇
第17章 開(kāi)發(fā)論壇系統(tǒng)
17.1 開(kāi)發(fā)前準(zhǔn)備
17.1.1 系統(tǒng)介紹
17.1.2 系統(tǒng)預(yù)覽
17.1.3 架構(gòu)設(shè)計(jì)
17.1.4 系統(tǒng)部署
17.2 系統(tǒng)整體界面設(shè)計(jì)
17.2.1 布局方案
17.2.2 論壇首頁(yè)
17.2.3 論壇版塊
17.3 用戶(hù)模塊
17.3.1 用戶(hù)登錄
17.3.2 用戶(hù)注冊(cè)
17.3.3 使用微博賬號(hào)登錄
17.3.4 將現(xiàn)有賬號(hào)綁定到微博
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)計(jì)瀏覽量
17.7.2 登記瀏覽位置
17.8 帖子搜索模塊
17.8.1 標(biāo)題搜索
17.8.2 使用全文搜索
17.9 小結(jié)
第18章 開(kāi)發(fā)自己的MVC框架
18.1 開(kāi)發(fā)前準(zhǔn)備
18.1.1 開(kāi)發(fā)MVC框架的思路
18.1.2 文件結(jié)構(gòu)
18.2 核心類(lèi)庫(kù)
18.2.1 初始化
18.2.2 URL處理
18.3 控制器的開(kāi)發(fā)
18.3.1 類(lèi)自動(dòng)載入
18.3.2 加載模板引擎(View)
18.3.3 處理消息(message)
18.4 模型的開(kāi)發(fā)
18.4.1 使用PDO
18.4.2 模型實(shí)例化
18.4.3 實(shí)現(xiàn)連貫操作
18.4.4 讀取數(shù)據(jù)
18.4.5 插入數(shù)據(jù)
18.4.6 更新數(shù)據(jù)
18.4.7 刪除數(shù)據(jù)
18.5 擴(kuò)展類(lèi)庫(kù)
18.5.1 Session驅(qū)動(dòng)擴(kuò)展
18.5.2 緩存驅(qū)動(dòng)擴(kuò)展
18.6 測(cè)試MVC框架
18.6.1 創(chuàng)建項(xiàng)目
18.6.2 測(cè)試CURD
18.6.3 測(cè)試驅(qū)動(dòng)
18.7 小結(jié)
附錄
附錄A 讓Nginx支持Pathinfo模式
附錄B 配置團(tuán)隊(duì)開(kāi)發(fā)環(huán)境