摘要:預(yù)備知識目錄后面簡稱目錄后面簡稱入口文件過程詳解范例定義路由文件路徑修改如下定義中間件中間件路徑新建中間件必須返回響應(yīng)在處理請求之前做些什么在處理請求之后做些什么中間件處理完畢后,做些什么中間件處理完畢后,做些什么注冊中間件中間件配件文件路
I. 預(yù)備知識 Laravel 目錄
/path/to
后面簡稱 Laravel
Web 目錄Laravel/public
后面簡稱 Web
入口文件Web/index.phpII. 過程詳解
范例: http://la.com/test/yueshu/female/20?name=chenxuelong
1. 定義 web 路由文件路徑:
Laravel/routes/web.php
修改如下:
Route::get("/test/{name}/{sex}/{age}" , "TestController@test")2. 定義中間件 2.1 中間件路徑:
Laravel/app/Http/Middleware2.2 新建中間件 Test.php:
namespace AppHttpMiddleware; use Closure; class Test { /** * 必須返回響應(yīng)(response) */ public function handle($request , Closure $next){ // 在處理請求之前做些什么... $response = $next($request); // 在處理請求之后做些什么 return $response; } /** * 中間件處理完畢后,做些什么 */ public function terminate($request , $response){ // 中間件處理完畢后,做些什么.... } }2.3 注冊中間件
中間件配件文件路徑:
Laravel/app/Http/Kernel.php
在 routeMiddleware 鍵名下新增:
"Test" => AppHttpMiddlewareTest::class4. 表單驗(yàn)證(請求)
文件存放目錄:
Laravel/app/Http/Requests
新建 FormValidate.php 驗(yàn)證類:
/** * 驗(yàn)證不通過時(shí),通過 header 中的 referer 重定向到 * 上一頁 */ namespace AppHttpRequests; use IlluminateFoundationHttpFormRequest; class FormValidate extends FormRequest { // 是否經(jīng)過授權(quán)的訪問 public function authorize(){ return true; } // 驗(yàn)證規(guī)則 public function rules(){ /** * required 表示必須 * max:255 最大長度 255 */ return [ "name" => "required|max:255" ]; } }5. 模型
文件路徑:
Laravel/app
新建模型 Test.php
namespace App; use IlluminateDatabaseEloquentModel; class Test extends Model { // 獲取某張表的所有數(shù)據(jù)(查詢構(gòu)造器) public function get($table){ DB::table($table)->get(); } // 獲?。ㄔ?sql) public function select($sql , $params){ DB::select($sql , $params); } // 插入(原生 sql) public functioin insert($sql , $params){ DB::insert($sql , $params); } // 更新(原生 sql) public function update($sql , $params){ DB::update($sql , $params); } // 刪除(原生 sql) public function delete($sql , $params){ DB::delete($sql , $params); } // 執(zhí)行通用 sql(原生 sql) public function statement($sql , $params){ DB::statement($sql , $params); } // 事務(wù) public function transaction($sql , callable $callback){ DB::transaction($sql , $callback): } // 手動(dòng)開啟事務(wù) public function beginTransaction(){ DB::beginTransaction(); } // 手動(dòng)回滾 public function rollBack(){ DB::rollBack(); } // 提交 public function commit(){ DB::commit(); } }6. 控制器
控制器路徑:
Laravel/app/Http/Controllers
新建控制器 TestController.php
namespace AppHttpControllers; use AppHttpControllersController; // 引入請求驗(yàn)證類 use AppHttpRequestsFormValidate; /* 可選注入模型類(分層) * 這邊引入了一個(gè) Test 模型類 */ use AppTest; class TestController extends Controller { // 構(gòu)造器(可以添加中間件 或 注入) function __construct(Test $test){ // 添加先前注冊的中間件 $this->middleware("Test"); // 注入模型類 $this->test = $test; } /** * 路由中設(shè)置的動(dòng)作名稱 * 通過類型提示,引入請求驗(yàn)證 */ public function test(FormValidate $request , $name , $sex , $age){ // 通過驗(yàn)證的請求..... $data = []; if (view()->exists("test")) { view("test" , $data); } else { exit("模板文件不存在...."); } } }7. 視圖
視圖路徑:
Laravel/resource/views
新建 test.blade.php 視圖文件
Laravel 從入口到輸出解析完畢!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/25724.html
摘要:上次提到過,模板引擎一般是要做三件事情變量值的輸出條件判斷和循環(huán)引入或繼承其他文件現(xiàn)在就來看看的模板引擎是如何來處理這三件事情的。引擎接下來就是本文的重點(diǎn)是如何編譯的。如果有興趣的話,也可以實(shí)現(xiàn)一個(gè)自己的模板解析引擎。 上次提到過,模板引擎一般是要做三件事情: 變量值的輸出(echo) 條件判斷和循環(huán)(if ... else、for、foreach、while) 引入或繼承其他文件 ...
摘要:首發(fā)于我的博客前言從開始,就提供了一個(gè)內(nèi)置的服務(wù)器。在中的安裝一節(jié)中介紹了一個(gè)命令可以使用內(nèi)置服務(wù)器實(shí)現(xiàn)外部訪問的命令。 首發(fā)于:我的博客 前言 PHP從5.4開始,就提供了一個(gè)內(nèi)置的web服務(wù)器。 這個(gè)主要是用來做本地的開發(fā)用的。不能用于線上環(huán)境?,F(xiàn)在我就介紹一下這個(gè)工具如何使用。 基礎(chǔ)應(yīng)用 首先我們假定項(xiàng)目目錄是/home/baoguoxiao/www/php/demo,外界可訪...
摘要:高性能高精度定時(shí)服務(wù),輕松管理千萬級定時(shí)任務(wù)。支持任務(wù)到期觸發(fā)和。支持創(chuàng)建延時(shí)任務(wù)和定時(shí)到期任務(wù),和原生保持相同接口,輕松使用。不支持任務(wù)輸出任務(wù)鉤子及維護(hù)模式。是不指定任務(wù)名時(shí)自動(dòng)生成,每個(gè)任務(wù)名必須唯一,相同任務(wù)名重復(fù)定義將會(huì)自動(dòng)覆蓋。 Forsun高性能高精度定時(shí)服務(wù),輕松管理千萬級定時(shí)任務(wù)。 定時(shí)服務(wù)項(xiàng)目地址:https://github.com/snower/forsun l...
摘要:在上一篇文章基于分支,從到,再到,簡單的介紹了這里分享在開發(fā)過程中,前端選擇的心理活動(dòng)。而作為核心開發(fā)之一,也負(fù)責(zé)前端這塊的開發(fā)。 在上一篇文章《 ThinkSNS+基于Laravel master分支,從1到 0,再到0.1》,簡單的介紹了 ThinkSNS+ ,這里分享在開發(fā)過程中,前端選擇的心理活動(dòng)。 Laravel Mix的放棄 在 Laravel 中,前端工作流默認(rèn)是由 la...
摘要:判斷是否存在構(gòu)造函數(shù),不存在直接實(shí)例化,存在則通過來獲取輸入函數(shù),并有相應(yīng)的方法解決依賴參數(shù)問題,實(shí)現(xiàn)依賴注入。 Laravel 框架關(guān)鍵技術(shù)解析·讀書筆記(一) 第一章 入口文件 請求訪問的入口文件,主要完成幾部分工作,分別是: 自動(dòng)加載函數(shù)的添加 服務(wù)器實(shí)例化與服務(wù)注冊 路由加載 請求實(shí)例化與路由分發(fā) 相應(yīng)生成與發(fā)送 其中,自動(dòng)加載函數(shù)用于包含引用文件,改文件是composer...
閱讀 1776·2023-04-26 00:20
閱讀 1828·2021-11-08 13:21
閱讀 2022·2021-09-10 10:51
閱讀 1584·2021-09-10 10:50
閱讀 3315·2019-08-30 15:54
閱讀 2148·2019-08-30 14:22
閱讀 1443·2019-08-29 16:10
閱讀 3105·2019-08-26 11:50