描述
本書特色
透過實際專案講解ThinkPHP 5資料驗證、偵錯、部署和快取等實用技術
本書實戰性很強,內容由淺入深,由局部到整體,沒有複雜的概念講解,以實用性為目標,系統地介紹ThinkPHP框架的相關技術及其在Web開發
中的應用。
都是實際專案中使用的實用技術,如資料驗證、偵錯、部署、快取等。透過多人部落格、圖書管理系統、論壇系統、微信小程式商城系統等四個實戰開發專案,幫助讀者快速切入ThinkPHP 5企業級專案開發。
全書主要內容如下:
► ThinkPHP 安裝、目錄結構及基本 MVC 觀念
► ThinkPHP Route介紹
► ThinkPHP Model 基礎操作
► ThinkPHP 原生 SQL 語法撰寫
► ThinkPHP Layout
► 如何引入第三方資源,如Bootstrap、jQuery。
► ThinkPHP 內建標籤、表單驗證及表單 Token
► ThinkPHP 驗證碼
► 使用 ThinkPHP製作多人部落格
► 使用 ThinkPHP製作圖書管理網站
► 使用 ThinkPHP製作論壇網站
► 使用 ThinkPHP製作微信小程式電商系統
適合讀者群:ThinkPHP初學者、PHP應用開發人員,或相關教學參考教材。
作者簡介
夏磊
從事軟體開發工作,精通PHP伺服器指令稿語言技術,善於把握與運用新技術,如LAMP平台下Web軟體的開發、軟體架構、設計模式、JavaScript、YII、Golang等;部落格上有大量的Web相關技術文章,深受讀者好評。
目錄
前言
01 架設開發環境
1.1 下載開發工具/ 軟體
1.2 HelloWorld
02 設定系統
2.1 設定的路徑
2.2 設定的格式
2.3 設定的載入順序
2.4 設定的讀寫與範例
2.5 小結
03 路由
3.1 路由模式
3.2 路由定義
3.3 路由條件
3.4 路由位址
3.5 Restful 路由
3.6 路由分組
3.7 全域404 路由
3.8 路由綁定
3.9 URL 產生
3.10 小結
04 控制器
4.1 定義
4.2 輸出回應
4.3 設定回應格式
4.4 初始化操作和前置操作
4.5 跳躍和重新導向
4.6 控制器巢狀結構
4.7 取得請求詳情
4.8 取得輸入資料
4.9 參數綁定
4.10 頁面快取
4.11 小結
05 資料庫操作層
5.1 資料庫設定
5.2 基本操作
5.3 使用查詢建置元
5.4 查詢語法
5.5 連貫操作
5.6 連貫操作範例
5.7 查詢事件與SQL 偵錯
06 模型層
6.1 模型定義
6.2 插入資料
6.3 更新資料
6.4 批次更新(只支援主鍵)
6.5 刪除資料
6.6 查詢資料
6.7 批次查詢
6.8 匯總查詢
6.9 get/set
6.10 自動時間戳記處理
6.11 唯讀欄位
6.12 軟刪除
6.13 自動完成
6.14 資料類型自動轉換
6.15 快速查詢
6.16 全域查詢準則
6.17 模型事件
6.18 連結模型
07 視圖
7.1 繪製方法
7.2 範本引擎設定
7.3 範本設定值與繪製
7.4 Think 範本引擎語法
7.5 範本繼承
7.6 範本標籤函數庫
08 驗證器
8.1 驗證器類別
8.2 驗證規則
8.3 自訂規則
8.4 控制器/ 模型驗證
8.5 便捷驗證
8.6 小結
09 緩存
9.1 快取設定
9.2 快取操作
10 Session 和Cookie
10.1 Session 和Cookie 區別
10.2 Session 設定
10.3 Session 操作
10.4 Cookie 設定
10.5 Cookie 操作
11 命令列應用
12 開發偵錯
12.1 偵錯模式的開啟和關閉
12.2 變數偵錯
12.3 執行流程
12.4 效能偵錯
12.5 異常
12.6 異常拋出
13 伺服器部署
13.1 apt-get 常用指令
13.2 安裝步驟
13.3 設定檔路徑
13.4 服務管理指令
13.5 設定預設網站
14 資料庫設計
14.1 設計原則
14.2 設計工具
15 多人部落格系統開發
15.1 專案目的
15.2 需求分析
15.3 功能分析
15.4 資料庫設計
15.5 模組設計
15.6 效果展示
15.7 程式範例
15.8 專案歸納
15.9 專案完整程式
16 圖書管理系統開發
16.1 專案目的
16.2 MVC + Repository + Service介紹
16.3 需求分析
16.4 功能分析
16.5 模組設計
16.6 資料庫設計
16.7 核心業務流程
16.8 效果展示
16.9 程式範例
16.10 專案歸納
16.11 專案完整程式
17 討論區系統開發
17.1 專案目的
17.2 需求分析
17.3 功能分析
17.4 模組設計
17.5 資料庫設計
17.6 效果展示
17.7 程式範例
17.8 專案歸納
17.9 專案完整程式
18 微信小程式商場系統開發
18.1 專案目的
18.2 需求分析
18.3 功能分析
18.4 模組設計
18.5 資料庫設計
18.6 效果展示
18.7 程式範例
18.8 專案歸納
18.9 專案完整程式
後記
序
前言
PHP 是一種通用開放原始碼指令稿語言,開放原始碼、跨平台、易用,主要適用於Web 開發領域。MVC 模式使得PHP 在大型Web 專案開發中耦合性低、重用性高、可維護性高、有利於軟體工程化管理。作為MVC架構中的佼佼者,ThinkPHP 是一個免費開放原始碼、快速、簡單的、物件導向的、輕量級PHP 開發架構,已經成長為最領先和最具影響力的Web 應用程式開發架構,許多的典型案例確保可以穩定用於商業以及入口級網站的開發。
ThinkPHP 5 版本是一個顛覆和重構版本,採用全新的架構思維,引用了更多的PHP 新特性,最佳化了核心,減少了依賴,實現了真正的惰性載入,支援composer,並針對API 開發做了大量的最佳化,包含路由、記錄檔、例外、模型、資料庫、範本引擎和驗證等模組都已經重構,不適合原有ThinkPHP 3.2 專案的升級,所以筆者撰寫了本書。
本書撰寫的目的是讓讀者能夠系統地學習ThinkPHP 5 架構。即使讀者不了解MVC 模式或MVC 架構,閱讀本書也不會有太大的問題,並且學完本書後能以ThinkPHP 5 為基礎開發自己的專案。為了加強讀者對內容的了解,每一章都有搭配範例以及詳盡的註釋,便於讀者了解和學習。大部分章節都會配有練習,進行針對性的訓練。在本書的後半部分更是直接展示一個完整專案的開發流程,讓讀者可以在實作中學習。畢竟「眼過千遍,不如手寫一遍」。
✤ 本書範例程式
針對上一版程式Github 單一倉庫託管問題,本書實例程式已經改為組織託管,每個專案都會使用獨立的倉庫儲存。所有的實例都可以在Web 開發中直接使用,省去了讀者「造輪子」的過程,以專注於業務邏輯開發。對於本書內容有任何疑問或在實際開發中遇到問題的讀者可以在Github 上的issue 中提出問題,作者會進行解答。本書倉庫位址為https://github.com/thinkphp5-inaction。如果下載有問題, 請聯繫booksaga@163.com,郵件主題為「ThinkPHP5 實戰」。
✤ 繁體中文版說明
本書作者為中國大陸人士,原書為簡體中文寫作,為維持本書程式碼及書中內容的一致性,本書中圖例均維持原作者簡體中文圖,請讀者閱讀時對照前後文。
✤ 本書開發環境
■ 作業系統:Windows10 專業版
■ Web 伺服器:PHP 附帶
■ PHP 版本:PHP 7.2.5(NTS)(ThinkPHP 5 要求 PHP 版本大於等於 5.6即可)
■ IDE:PHPStorm 2018.1
■ ThinkPHP 版本:ThinkPHP 5.0.19(本書提到的 ThinkPHP 5 即指這個版本)
■ 瀏覽器:Google Chrome 66(更高的版本也沒有問題)
✤ 本書適合讀者
■ Web 開發同好
■ 擁有 PHP 基礎想深入學習 PHP 大型專案開發的人員
■ 大專院校以及教育訓練機構的講師
■ 初 / 中級網站開發人員