Laravel框架關鍵技術解析

Laravel框架關鍵技術解析

《Laravel框架關鍵技術解析》是2016年電子工業出版社出版的圖書,作者是陳昊、陳遠征、陶業榮。

基本介紹

  • 書名:Laravel框架關鍵技術解析
  • 作者:陳昊
    陳遠征
    陶業榮
  • ISBN:9787121292095
  • 頁數:336
  • 定價:79
  • 出版社:電子工業出版社
  • 出版時間:2016-06
  • 開本:16
內容簡介,目錄,前言,Laravel 框架,適合的讀者,致謝,

內容簡介

本書以Laravel 5.1版本為基礎,從框架技術角度介紹Laravel構建的原理,從原始碼層次介紹Laravel功能的套用。通過本書的學習,讀者能夠了解Laravel框架實現的方方面面,完成基於該框架的定製化應用程式開發。本書第1章到第4章主要介紹了與Laravel框架學習相關的基礎部分,讀者可以深入了解該框架的設計思想,學習環境搭建,了解PHP語法知識和HTTP協定;第5章到第14章分別從某個方面介紹Laravel框架是如何構建和使用的,包括程式的生命周期、服務容器和資料庫等,同時也將其中的一些構建技術剝離開,使讀者可以學習該框架的構建技術和思想,如設計模式的內容;第15章是一個簡單的實例,將前面的學習內容串聯起來並在實踐中套用,使讀者學會使用該框架定製化地設計應用程式。本書既適合想了解Laravel框架構建技術的讀者,也適合想深入了解Laravel框架的讀者。

目錄

第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

前言

Laravel 框架

Laravel 框架是通過PHP 程式語言編寫的,而PHP 程式語言因為其混亂的設計和不優雅的風格有時被認為設計得很糟糕,但是它也有自身的優勢,就是專為Web 開發而生,簡單高效是它的法寶,這裡的高效不是指它運行的速度快,而是同樣的一個任務用它完成的速度快。有統計表明,同樣的任務,用PHP 開發的時間是用Java 開發的時間的一半左右,因此也誕生了大量用PHP 編寫的Web 框架(如Symfony、CodeIgniter、Yii Framework 等)和內容管理系統(如drupal、Joomla、WordPress 等),通過這些資源可以更加快速地構建Web套用。前面提到,PHP 程式語言設計得不是很優美,所以很多用PHP 編寫的框架也比較混亂,而Laravel 框架開發的宗旨就是為Web 藝術家創造的PHP 框架,用糟糕的程式語言設計優雅的框架這一點非常難,但是Laravel 做到了,對於用戶的請求,它就像流水線作業一樣,通過一道道工序處理用戶的請求,然後返回處理的結果。在這個過程中,用戶可以很容易地增加、修改、刪除其中的工序,實現定製化。能夠做到這些,我想主要是因為開發者在設計期間採用了組件化開發、依賴注入、接口編程等技術,組件化開發使得整個框架像搭積木一樣構建起來,因此就可以非常容易地添加、刪減功能,體現了編程技術中的易復用、可擴展等特性,依賴注入、接口編程使得模組間的耦合非常低,如果想將某個模組替換自己新設計的模組,只需要滿足接口規範就不會對其他模組產生影響,這體現了編程技術中的易維護特性。總之,通過學習Laravel 框架,不僅可以掌握Web 開發的方方面面,最重要的是能夠學到構建一個優秀框架的思想和方法。

適合的讀者

撰寫本書的初衷是我在學習Laravel 框架的過程中看到中文的資料很少,英文資料大多是如何套用該框架,而這些知識不足以支持你創建一個定製化的套用,於是,我花了大量的時間在閱讀該框架的源碼上,走過了盲人摸象的過程,最後才看到了Laravel 框架的真面目,這個過程其實是非常低效的。所以,我希望能寫一本這樣的書,使得以後學習該框架的人能夠少走彎路,節省出更多的時間去做更有意義的事。本書重點介紹了Laravel 框架構建的關鍵技術,即組件化開發和使用的相關設計模式,所以本書適合想了解框架構建技術的讀者。同時,本書是從源碼層次分析該框架實現的幾個方面,通過這些源碼讀者能了解實現的細節,從而很容易實現對該框架的定製和修改,並非只是簡單的套用,通過掌握該框架的幾個重要方面,讀者能夠在整體上把握Laravel 框架實現的過程,所以本書適合想深入了解Laravel 框架的讀者。但是本書並沒有提供太多的套用實例,也沒有將Laravel 框架的所有功能進行全部介紹,所以並不適合想快速學習Laravel框架套用的讀者。
由於本人的能力有限,書中難免有錯誤、疏漏的地方,敬請大家批評指正。

致謝

首先,最應該感謝該框架的開發者Taylor Otwell,沒有他無私的奉獻就沒有這么優美的框架供我們使用和學習;其次,感謝我的家人,是你們的支持和理解讓這本書在數不清的加班中誕生;感謝參與寫作、審校的同事,包括陳遠征、陶業榮、魏佩、歲賽、胡凱平、趙艷麗、陳延倉、王鵬、張頌、陳歡、王振全、李鵬飛、趙亞新等;最後,感謝電子工業出版社的孫學瑛編輯,這本書的出版與你們辛勤的努力和負責的態度是分不開的。

相關詞條

熱門詞條

聯絡我們