摘要:又限于層的內容太多,我在這篇中將整理路由中間件控制器部分內容。前者定義頁面路由,默認應用中間件組后者定義無狀態路由,會應用中間件組。命名路由可以為指定路由或者控制器方法命名,也可以為已命名的路由生成。
上圖列出了 Laravel HTTP 層的相關知識大綱。由于目前自己的工作中網頁、App、小程序等都采用前后臺分離的方式實現,前端頁面通過接口從后端獲取數據并自己渲染,因此大綱中的 Session、視圖、CSRF 保護幾個部分將不做整理。又限于 HTTP 層的內容太多,我在這篇中將整理路由、中間件、控制器 3 部分內容。在下一期里,再整理 HTTP 請求、響應及表單驗證部分的內容。
0x00 路由 基本路由構建最基本的路由只需要一個 URI 和一個閉包。所有的 Laravel 路由都在 routes 目錄中的路由文件中定義。Laravel 默認提供 web.php 和 api.php 兩個路由文件。前者定義 web 頁面路由,默認應用 web 中間件組;后者定義無狀態路由,會應用 api 中間件組。
Laravel 的 Route Facade 提供了 get, post, put, patch, delete, options, match, any 等路由方法來支持響應單個、多個、所有的 HTTP 方法。
路由參數Laravel 可以通過多種方式對路由參數的必選、可選及具體格式進行約束。
命名路由Laravel 可以為指定路由或者控制器方法命名,也可以為已命名的路由生成 URL。
路由組Laravel 的路由組允許共享路由屬性,常用的路由組包括中間件、命名空間、子域名路由和路由前綴。
路由模型綁定Laravel 路由模型綁定提供了一個方便的方法自動將模型注入到路由中,可以隱式綁定,也可以顯式綁定。
隱式綁定時,默認綁定 Eloquent 模型的 ID 字段。通過模型的 getRouteKeyName 方法可以自定義綁定鍵名。
顯式綁定則是使用路由的 model 方法來為已有參數聲明 class 。
0x01 路由中間件Laravel 中間件提供了一種方便的機制來過濾進入應用的 HTTP 請求。可以將中間件想象為一系列的「層」,HTTP 請求必須經過它們才會觸發您的應用程序。每一層都可以檢測接收的請求,甚至可以完全拒絕請求訪問您的應用。
常見的中間件實例包括身份驗證中間件、日志中間件、 CSRF 中間件等。多個多帶帶的中間件還可以定義為中間件組。Laravel 帶有開箱即用的 web 和 api 中間件組。
0x02 控制器控制器能夠將相關的請求處理邏輯組成一個多帶帶的類。是在路由文件中以閉包的形式定義所有的請求處理邏輯之外的另一種形式。
資源控制器Laravel 資源路由可以將典型的 CRUD 路由指定到一個控制器上,僅僅需要一行代碼就可以實現,這大大提高了后臺業務的開發效率。
以相片控制器為例,兩個步驟可以定義好處理所有應用保存的相片 HTTP 請求的業務。
通過一行命令創建一個控制器
為這個控制器注冊一個資源路由
資源路由的聲明會創建的多個路由來處理各種各樣的資源操作,這些操作都包含在控制器中了。
除了提供默認的操作外,可以根據需要對操作進行自定義。
可以只定義部分資源路由
可以重寫默認的資源路由名稱
可以重寫資源路由的默認參數名稱
可以實現資源 URI 的語言本地化
可以附加其他需要的資源控制器
依賴注入與控制器Laravel 使用服務容器來解析所有的控制器。可以在控制器的構造方法中對任何依賴使用類型約束,也可以在控制器方法中使用依賴類型約束。
下一步在下一期中,我將整理 Laravel HTTP 請求、響應及表單驗證的相關知識。這些是所有網絡應用最重要的部分。
思維導圖在導出的過程中會變得模糊,如有需要高清的思維導圖源文件,請加微信公眾號:up2048,并回復“腦圖”來獲取。
- EOF -
推薦閱讀Laravel思維導圖之Laravel核心概念
Laravel思維導圖之Laravel入門指南
十五張思維導圖帶你快速學習PHP言語基礎
我心目中的網絡接口設計到底是怎樣的過程?
多平臺統一用戶系統設計
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/25735.html
摘要:今天我來分享中層關于請求響應與表單驗證的知識。手動創建驗證請求之前的內容是直接使用的方法來實現表單驗證。下一步到這篇為止,我完成了入門指南核心概念層的路由中間件控制器請求響應表單驗證的學習和整理。 showImg(https://segmentfault.com/img/remote/1460000010882838); 今天我來分享 Laravel 中 HTTP 層關于請求、響應與表...
摘要:為了一探究竟,于是開啟了這次應用性能調優之旅。使用即時編譯器和都能輕輕松松的讓你的應用程序在不用做任何修改的情況下,直接提高或者更高的性能。 這是一份事后的總結。在經歷了調優過程踩的很多坑之后,我們最終完善并實施了初步的性能測試方案,通過真實的測試數據歸納出了 Laravel 開發過程中的一些實踐技巧。 0x00 源起 最近有同事反饋 Laravel 寫的應用程序響應有點慢、20幾個并...
摘要:的核心概念包括服務容器服務提供者門面契約。所有服務提供者都需要繼承類。可以為服務提供者的方法設置類型提示。方法將在所有其他服務提供者均已注冊之后調用。同樣會整理成思維導圖的形式以方便記憶與回顧。 showImg(https://segmentfault.com/img/remote/1460000010771201); Laravel 的核心概念包括:服務容器、服務提供者、門面(Fac...
摘要:本系列思維導圖整理自版本官方文檔。思維導圖導出為圖片時會導致其變模糊。需要高清的思維導圖源文件,請關注微信公眾號,并回復精進腦圖來獲取。今天我們就通過張思維導圖來快速看入門指南。這些文章都將首發在微信公眾號上。 showImg(https://segmentfault.com/img/remote/1460000010774258); 本系列思維導圖整理自 Laravel 5.4 版...
摘要:原文譯文譯者包括超過個新特性。這個默認命名空間可以很方便的使用命令更換為其他名字。事實上,對于負責的任務,使用是非常好的方法。其它新特性正在翻譯中,您可以在關注最新的翻譯動態 原文: http://laravel.com/docs/master/releases#laravel-5.0 譯文: http://discuss.flarum.org.cn/24-laravel-5 譯者: ...
閱讀 2845·2021-10-21 09:38
閱讀 2751·2021-10-11 10:59
閱讀 3022·2021-09-27 13:36
閱讀 1649·2021-08-23 09:43
閱讀 790·2019-08-29 14:14
閱讀 3034·2019-08-29 12:13
閱讀 3203·2019-08-29 12:13
閱讀 310·2019-08-26 12:24