産品特色
內容簡介
本書以Laravel 5.1版本為基礎,從框架技術角度介紹Laravel構建的原理,從源代碼層次介紹Laravel功能的應用。通過本書的學習,讀者能夠瞭解Laravel框架實現的方方麵麵,完成基於該框架的定製化應用程序開發。本書第1章到第4章主要介紹瞭與Laravel框架學習相關的基礎部分,讀者可以深入瞭解該框架的設計思想,學習環境搭建,瞭解PHP語法知識和HTTP協議;第5章到第14章分彆從某個方麵介紹Laravel框架是如何構建和使用的,包括程序的生命周期、服務容器和數據庫等,同時也將其中的一些構建技術剝離開,使讀者可以學習該框架的構建技術和思想,如設計模式的內容;第15章是一個簡單的實例,將前麵的學習內容串聯起來並在實踐中應用,使讀者學會使用該框架定製化地設計應用程序。本書既適閤想瞭解Laravel框架構建技術的讀者,也適閤想深入瞭解Laravel框架的讀者。
作者簡介
陳昊,2008年畢業於中國科學技術大學自動化係,保送研究生保留學籍,工作兩年後迴學校讀碩士研究生,2013年畢業。目前於洛陽某研究所工作,從事網絡安全、數據挖掘等方麵工作。
目錄
第1 章 組件化開發與composer 使用……………………………………………… 1
1.1 組件化開發… ……………………………………………………………………… 1
1.2 composer 使用……………………………………………………………………… 2
1.2.1 composer 安裝 ………………………………………………………………………… 2
1.2.2 組件安裝 ……………………………………………………………………………… 5
1.2.3 自動加載 ……………………………………………………………………………… 6
1.2.4 composer 命令行簡介 ………………………………………………………………… 7
1.3 手動構建Laravel 框架……………………………………………………………… 8
1.3.1 項目初始化 …………………………………………………………………………… 8
1.3.2 添加路由組件 ………………………………………………………………………… 9
1.3.3 添加控製器模塊 …………………………………………………………………… 12
1.3.4 添加模型組件 ……………………………………………………………………… 13
1.3.5 添加視圖組件 ……………………………………………………………………… 17
第2 章 Laravel 框架安裝與調試環境建立… …………………………………… 21
2.1 Windows 開發環境搭建和調試………………………………………………… 21
2.1.1 Laravel 框架安裝 …………………………………………………………………… 21
2.1.2 開發調試環境搭建 ………………………………………………………………… 22
2.2 Linux 開發環境搭建……………………………………………………………… 31
2.2.1 LAMP 環境搭建 …………………………………………………………………… 31
2.2.2 Laravel 安裝 ………………………………………………………………………… 36
第3 章 Laravel 框架中常用的PHP 語法… …………………………………… 39
3.1 組件化開發語法條件… ………………………………………………………… 39
3.1.1 命名空間 …………………………………………………………………………… 39
3.1.2 文件包含 …………………………………………………………………………… 43
3.2 匿名函數… ……………………………………………………………………… 48
3.2.1 匿名函數的使用 …………………………………………………………………… 49
3.2.2 Laravel 框架中的應用 ……………………………………………………………… 49
3.3 PHP 中的特殊語法… …………………………………………………………… 50
3.3.1 魔術方法 …………………………………………………………………………… 50
3.3.2 魔術常量 …………………………………………………………………………… 53
3.4 反射… …………………………………………………………………………… 55
3.5 後期靜態綁定… ………………………………………………………………… 58
3.6 Laravel 中使用的其他新特性…………………………………………………… 60
3.6.1 trait ………………………………………………………………………………… 60
3.6.2 簡化的三元運算符 ………………………………………………………………… 63
第4 章 Laravel 框架中使用的HTTP 協議基礎………………………………… 64
4.1 HTTP 發展與相關網絡技術……………………………………………………… 64
4.1.1 HTTP 發展 ………………………………………………………………………… 64
4.1.2 與HTTP 協議相關的網絡技術 …………………………………………………… 65
4.2 HTTP 協議簡介…………………………………………………………………… 71
4.2.1 HTTP 協議工作流程 ……………………………………………………………… 71
4.2.2 請求報文和響應報文結構簡介 …………………………………………………… 71
第5 章 Laravel 框架初識………………………………………………………… 77
5.1 Laravel 框架應用程序目錄結構………………………………………………… 77
5.1.1 Laravel 框架應用程序根目錄介紹 ………………………………………………… 77
5.1.2 app 目錄介紹 ……………………………………………………………………… 78
5.1.3 vendor 目錄介紹 …………………………………………………………………… 78
5.2 Laravel 框架應用程序的三個重要環節………………………………………… 79
5.2.1 路由 ………………………………………………………………………………… 79
5.2.2 控製器 ……………………………………………………………………………… 82
5.2.3 視圖 ………………………………………………………………………………… 86
第6 章 Laravel 框架中的設計模式… …………………………………………… 92
6.1 服務容器… ……………………………………………………………………… 92
6.1.1 依賴與耦閤 ………………………………………………………………………… 92
6.1.2 工廠模式 …………………………………………………………………………… 94
6.1.3 IoC 模式 …………………………………………………………………………… 95
6.1.4 源碼解析 …………………………………………………………………………… 99
6.2 請求處理管道簡介… …………………………………………………………… 104
6.2.1 裝飾者模式 ………………………………………………………………………… 105
6.2.2 請求處理管道 ……………………………………………………………………… 106
6.2.3 部分源碼 …………………………………………………………………………… 110
第7 章 請求到響應的生命周期… ……………………………………………… 114
7.1 程序啓動準備… ………………………………………………………………… 114
7.1.1 服務容器實例化 …………………………………………………………………… 115
7.1.2 核心類(Kernel 類)實例化 ……………………………………………………… 120
7.2 請求實例化… …………………………………………………………………… 121
7.3 處理請求… ……………………………………………………………………… 124
7.3.1 請求處理準備工作 ………………………………………………………………… 125
7.3.2 中間件 ……………………………………………………………………………… 137
7.3.3 路由處理生成響應 ………………………………………………………………… 140
7.4 響應的發送與程序終止… ……………………………………………………… 146
7.4.1 響應的發送 ………………………………………………………………………… 146
7.4.2 程序終止 …………………………………………………………………………… 148
第8 章 服務容器與服務提供者… ……………………………………………… 150
8.1 服務容器… ……………………………………………………………………… 150
8.1.1 服務容器的産生 …………………………………………………………………… 150
8.1.2 服務綁定 …………………………………………………………………………… 151
8.1.3 服務解析 …………………………………………………………………………… 153
8.2 服務提供者… …………………………………………………………………… 156
8.2.1 創建服務提供者 …………………………………………………………………… 157
8.2.2 注冊服務提供者 …………………………………………………………………… 158
8.2.3 緩載服務提供者 …………………………………………………………………… 158
第9 章 請求與響應的操作… …………………………………………………… 160
9.1 HTTP 請求實例的操作…………………………………………………………… 160
9.1.1 請求實例的獲取 …………………………………………………………………… 160
9.1.2 請求參數的獲取 …………………………………………………………………… 161
9.1.3 請求參數的一次存儲 ……………………………………………………………… 165
9.1.4 獲取一次存儲數據 ………………………………………………………………… 166
9.2 HTTP 響應………………………………………………………………………… 166
9.2.1 生成響應的主體內容 ……………………………………………………………… 167
9.2.2 生成自定義響應的實例 …………………………………………………………… 167
9.2.3 生成重定嚮的響應 ………………………………………………………………… 170
第10 章 數據庫及操作…………………………………………………………… 174
10.1 數據庫遷移與填充……………………………………………………………… 174
10.1.1 數據庫遷移 ………………………………………………………………………… 174
10.1.2 數據庫填充 ………………………………………………………………………… 178
10.2 查詢構造器……………………………………………………………………… 180
10.2.1 PHP 中數據庫的操作 ……………………………………………………………… 181
10.2.2 數據庫連接的封裝 ………………………………………………………………… 185
10.2.3 查詢構造器的實現 ………………………………………………………………… 191
10.2.4 查詢構造器的使用 ………………………………………………………………… 192
10.2.5 查詢構造器的數據庫操作 ………………………………………………………… 196
10 3 Eloquent ORM… ……………………………………………………………… 198
10.3.1 Eloquent ORM 的底層實現 ……………………………………………………… 198
10.3.2 Eloquent ORM 的使用 …………………………………………………………… 205
第11 章 redis 數據庫… ………………………………………………………… 214
11.1 redis 數據庫簡介… …………………………………………………………… 214
11.1.1 安裝 ………………………………………………………………………………… 214
11.1.2 redis 數據結構 …………………………………………………………………… 215
11.2 redis 數據庫的應用… ………………………………………………………… 220
11.2.1 數據存取 …………………………………………………………………………… 220
11.2.2 redis 數據庫編程思想 …………………………………………………………… 234
11.2.3 發布、訂閱消息 …………………………………………………………………… 235
第12 章 會話……………………………………………………………………… 239
12.1 Cookie 技術… ………………………………………………………………… 239
12.2 session 技術… ………………………………………………………………… 241
12.2.1 session 的工作機製 ……………………………………………………………… 241
12.2.2 session 的配置 ……………………………………………………………………… 244
12.3 Laravel 框架中的session 機製… …………………………………………… 245
12.3.1 session 的啓動 …………………………………………………………………… 246
12.3.2 session 的操作 …………………………………………………………………… 252
12.3.3 session 的關閉 …………………………………………………………………… 253
第13 章 消息隊列………………………………………………………………… 256
13.1 同步類型消息隊列……………………………………………………………… 257
13.1.1 消息發送 …………………………………………………………………………… 257
13.1.2 消息處理 …………………………………………………………………………… 265
13.2 數據庫類型消息隊列…………………………………………………………… 267
13.2.1 參數配置 …………………………………………………………………………… 267
13.2.2 數據錶的建立 ……………………………………………………………………… 267
13.2.3 消息的生成、發送與處理 ………………………………………………………… 269
13.2.4 消息存儲 …………………………………………………………………………… 269
13.2.5 消息獲取 …………………………………………………………………………… 270
第14 章 認證與數據驗證………………………………………………………… 273
14.1 認證……………………………………………………………………………… 273
14.1.1 認證模塊的配置 …………………………………………………………………… 273
14.1.2 數據錶的建立 ……………………………………………………………………… 274
14.1.3 添加用戶認證路由 ………………………………………………………………… 275
14.1.4 認證視圖的創建 …………………………………………………………………… 276
14.1.5 用戶權限認證 ……………………………………………………………………… 279
14.2 數據驗證………………………………………………………………………… 285
14.2.1 數據驗證的實現 …………………………………………………………………… 285
14.2.2 數據驗證的其他使用方法 ………………………………………………………… 289
14.2.3 數據驗證後期處理 ………………………………………………………………… 290
14.2.4 數據驗證準則 ……………………………………………………………………… 291
第15 章 思維筆記實例…………………………………………………………… 293
15.1 數據庫設計……………………………………………………………………… 293
15.1.1 數據錶設計 ………………………………………………………………………… 293
15.1.2 模型類設計 ………………………………………………………………………… 296
15.2 路由設計………………………………………………………………………… 301
15.2.1 模塊劃分 …………………………………………………………………………… 301
15.2.2 程序設計 …………………………………………………………………………… 301
15.3 控製器設計與Web 頁麵設計… ……………………………………………… 301
15.3.1 用戶認證模塊 ……………………………………………………………………… 302
15.3.2 用戶管理模塊 ……………………………………………………………………… 307
15.3.3 筆記類彆管理模塊 ………………………………………………………………… 311
15.3.4 筆記管理模塊 ……………………………………………………………………… 317
《PHP實戰:從入門到精通》 內容簡介: 您是否曾對動態網頁的生成感到好奇?是否渴望親手構建功能強大、交互流暢的Web應用程序?《PHP實戰:從入門到精通》正是您踏入PHP開發世界,並一路走嚮精通的理想指南。本書並非停留在理論的紙上談兵,而是以實用的項目和豐富的代碼示例為核心,帶領讀者深入理解PHP語言的精髓,掌握Web開發的必備技能。 本書內容涵蓋瞭PHP語言的方方麵麵,從最基礎的語法概念,到高級的麵嚮對象編程,再到與數據庫的交互,以及安全性的考量,無不詳盡細緻。我們力求通過循序漸進的學習路徑,讓初學者能夠快速上手,並為有一定基礎的開發者提供進階的視角和深度。 第一部分:PHP基礎入門 環境搭建與Hello, World! 我們將首先指導您完成PHP開發環境的搭建,無論是Windows、macOS還是Linux係統,都能輕鬆配置。通過經典的“Hello, World!”程序,您將直觀地感受到PHP代碼的運行。我們將深入講解Web服務器(如Apache、Nginx)與PHP解釋器(如PHP-FPM)的工作原理,讓您理解瀏覽器請求如何被處理並最終生成動態內容。 變量、數據類型與運算符 理解變量是編程的基石。本書將詳細介紹PHP中各種數據類型,包括整型、浮點型、字符串、布爾型、數組、對象和NULL。您將學習如何聲明、賦值和操作變量,掌握不同數據類型之間的隱式和顯式轉換。此外,我們還會係統講解算術運算符、比較運算符、邏輯運算符、賦值運算符以及其他常用運算符,幫助您構建復雜的錶達式。 控製結構:流程的掌控 無論程序多麼復雜,其執行流程都可以通過控製結構來管理。本書將全麵介紹PHP的條件語句(`if`、`else`、`elseif`、`switch`)和循環語句(`for`、`while`、`do-while`、`foreach`)。通過大量的實例,您將學會如何根據不同的條件執行不同的代碼塊,以及如何重復執行某個任務直到滿足特定條件。我們將展示如何利用這些結構實現用戶輸入的驗證、數據的遍曆和條件的判斷。 函數:代碼的復用與模塊化 函數是實現代碼復用的重要手段。我們將講解如何定義和調用函數,包括函數參數的傳遞(值傳遞、引用傳遞)、返迴值以及函數作用域的概念。您將學習如何創建可重用的代碼塊,提高開發效率,並使代碼結構更加清晰。本書還會介紹PHP內置的豐富函數庫,涵蓋字符串處理、數學計算、日期時間等常用功能,讓您無需重復造輪子。 數組:數據的組織與管理 數組是PHP中用於存儲一組數據的強大工具。我們將深入探討索引數組和關聯數組,以及它們的創建、訪問、修改和刪除。您將學習如何使用各種數組函數(如`count()`、`array_push()`、`array_pop()`、`sort()`、`asort()`、`array_keys()`、`array_values()`等)來高效地處理和操作數組數據。 字符串處理:文本的精妙操控 在Web開發中,字符串處理無處不在。本書將提供全麵的字符串操作指南,包括字符串的拼接、截取、替換、查找、大小寫轉換等。您將掌握正則錶達式在字符串匹配和提取中的強大能力,以及常用的字符串函數,如`strlen()`、`strpos()`、`substr()`、`str_replace()`、`strtolower()`、`strtoupper()`等,能夠自如地處理各種文本數據。 第二部分:麵嚮對象編程(OOP) 類與對象:構建抽象模型 麵嚮對象編程是現代軟件開發的主流範式。本書將循序漸進地介紹PHP的麵嚮對象特性。您將學習如何定義類,包括屬性(成員變量)和方法(成員函數)。然後,您將理解如何創建類的實例(對象),並通過對象來訪問和操作其屬性和方法。 封裝、繼承與多態:OOP的核心理念 我們將深入剖析麵嚮對象編程的三大核心概念。封裝講解如何將數據和操作數據的方法綁定在一起,隱藏內部實現細節,提供清晰的接口。繼承則允許您創建新的類,並繼承現有類的屬性和方法,實現代碼的重用和擴展。多態則讓不同的對象能夠對同一個消息做齣不同的響應,增強代碼的靈活性和可擴展性。 訪問修飾符與訪問者模式 瞭解`public`、`protected`和`private`訪問修飾符,能夠幫助您更好地控製類成員的訪問權限,實現更精細的代碼管理。我們還會介紹魔術方法(如`__get()`、`__set()`、`__call()`、`__construct()`、`__destruct()`等),它們能夠實現更高級的對象行為控製,以及瞭解如何利用訪問者模式來訪問對象的內部數據。 命名空間與自動加載 隨著項目規模的增長,命名空間的引入對於避免類名衝突至關重要。本書將指導您如何使用命名空間來組織代碼,以及如何結閤Composer的自動加載機製,讓PHP能夠智能地加載所需的類文件,極大地簡化瞭項目管理。 第三部分:Web開發進階 HTTP協議與請求/響應模型 Web應用的核心在於HTTP協議。我們將詳細解釋HTTP請求(GET、POST等)和響應的結構,理解請求頭、請求體、響應頭、響應體的作用。您將學會如何在PHP中處理用戶提交的錶單數據,以及如何構建HTTP響應,包括設置狀態碼、內容類型等。 錶單處理與數據驗證 Web應用與用戶的交互離不開錶單。本書將演示如何使用PHP處理HTML錶單提交的數據,包括GET和POST方式。我們將重點講解數據驗證的重要性,以及各種驗證方法的實現,如長度驗證、類型驗證、格式驗證(電子郵件、URL等),確保數據的閤法性和安全性。 文件上傳與處理 文件上傳是Web應用中常見的需求。我們將講解如何使用PHP安全地處理用戶上傳的文件,包括文件大小、類型、擴展名的限製,以及文件存儲路徑的選擇和文件的重命名。 Cookie與Session:維護用戶狀態 為瞭實現持久化的用戶體驗,Cookie和Session是必不可少的。本書將詳細介紹Cookie的創建、讀取和刪除,以及Session的工作原理,包括Session的啓動、數據的存儲和獲取。您將學會如何利用Session來實現用戶登錄狀態的管理,購物車功能等。 數據庫交互:MySQL入門與實踐 幾乎所有的Web應用都需要與數據庫打交道。本書將以MySQL數據庫為例,帶領您學習SQL基礎語法,包括數據的查詢、插入、更新和刪除。然後,我們將重點講解如何使用PHP的MySQLi擴展或PDO(PHP Data Objects)與MySQL數據庫進行交互。您將學習如何建立數據庫連接,執行SQL語句,處理查詢結果,以及參數化查詢以防止SQL注入攻擊。 錯誤處理與異常機製 健壯的應用程序離不開有效的錯誤處理。我們將介紹PHP的錯誤報告級彆,以及如何通過`try-catch`塊來捕獲和處理異常。您將學會如何自定義異常類,以及如何記錄錯誤日誌,以便於問題排查和調試。 文件操作:讀寫文件 除瞭數據庫,文件係統也是重要的存儲介質。本書將介紹PHP中常用的文件操作函數,如`fopen()`、`fclose()`、`fread()`、`fwrite()`、`file_get_contents()`、`file_put_contents()`等,讓您能夠方便地讀取和寫入文本文件、二進製文件,並進行目錄的操作。 第四部分:安全與性能優化 Web安全基礎:防範常見攻擊 安全性是Web開發中至關重要的一環。我們將深入講解跨站腳本攻擊(XSS)、SQL注入、跨站請求僞造(CSRF)等常見Web安全威脅,並提供相應的防禦策略和PHP實現方法。您將學習如何對用戶輸入進行過濾和轉義,如何使用預處理語句,以及如何生成CSRF令牌來保護您的應用。 性能優化入門 隨著應用的復雜度和用戶量的增長,性能優化變得越來越重要。本書將介紹一些基本的性能優化技巧,如減少數據庫查詢次數、優化SQL語句、利用緩存、壓縮輸齣等,幫助您構建響應更快的Web應用。 本書特點: 強調實踐: 大量的代碼示例和完整的項目演示,讓您在實踐中學習,掌握真實世界的開發技巧。 循序漸進: 從基礎語法到高級概念,由淺入深,適閤不同層次的讀者。 全麵深入: 涵蓋PHP開發的各個關鍵領域,為您的Web開發之旅打下堅實基礎。 注重細節: 每一個重要的概念都會配以詳盡的解釋和易於理解的例子。 語言通俗易懂: 避免使用過於晦澀的技術術語,力求讓讀者能夠輕鬆理解。 《PHP實戰:從入門到精通》將是您通往PHP Web開發專傢的第一站。無論您是零基礎的初學者,還是希望提升技能的開發者,都能從中受益匪淺。現在就開始您的PHP開發之旅吧!