Hôm nay mình sẽ reviews với đa số fan về Middleware trong Laravel và nghỉ ngơi đó là phiên bản 5.7
Middleware là gì?
Theo wikipedia:
Middleware là phần mềm laptop với trách nhiệm liên kết những nhân tố phần mềm hoặc các ứng dụng cùng nhau. Phần mềm các loại này bao gồm một tập những hình thức có thể chấp nhận được sự liên quan giữa các các bước điều khiển xe trên một hoặc các trang bị không giống nhau. Công nghệ middleware đã làm được cải tiến và phát triển nhằm cung cấp tài năng hoạt động cứu giúp, ship hàng cho các phong cách thiết kế phân tán hay được nhằm cung cấp cùng đơn giản dễ dàng hóa những áp dụng phân tán phức hợp.
Bạn đang xem: Middleware là gì
Thì đối với Laravel nó cũng trọn vẹn điều này.
Cấu trúc file
Tất cả các tệp tin được đặt trong thỏng mục app/Http/Middleware

Tạo Middleware trong Laravel
Để chế tạo một middleware, trong Laravel đã cung ứng cho chúng ta một lệnh:
php artisan make:middleware MiddelwareNameTrong đó: MiddlewareName là tên gọi của middleware các bạn có nhu cầu tạo ra.
VD: Tạo một Middleware
php artisan make:middleware CheckLevelNếu cảm nhận thông báo : Middleware created successfully. thì đã sinh sản thành công xuất sắc middleware.
Middleware mặc định đang buộc phải phía trong thư mục: app/Http/Middleware.
Tiếp đó chúng ta msinh hoạt tệp tin vừa tạo ra vẫn thấy gồm dạng:

Sử dụng Middleware
Mọi xử trí vào middleware đa số phía trong handle function. Mọi bạn xem qua ví dụ cho dễ nắm bắt nhé:
VD: Mình muốn user vừa singin đề nghị có status = 1 mới được vào admin:
status = 1) return $next($request); else return redirect("/"); }}Xem VD: bên trên chắc số đông người cũng gọi về phong thái buổi giao lưu của nó rồi nhỉ!
Đăng ký Middleware
Các phần bên trên bắt đầu chỉ với tạo nên middleware cùng viết code đến nó nhưng lại không thực hiện được, giờ nếu như muốn sử dụng được middleware trong project thì họ cần phải đăng ký middleware bởi những mẫu mã middleware sau đây:
Global Middleware
Global middleware là một middel là 1 trong những middleware mà bất kể HTTP request như thế nào muốn triển khai được cũng cần phải qua nó.
Để đăng ký global middleware các bạn sẽ đề nghị vào: app/Http/Kernel.php tìm tới đoạn:

Đăng ký cùng với cú pháp:
AppHttpMiddlewareMiddlewareName::classTrong số đó : MiddlewareName là tên middleware các bạn có nhu cầu thêm.
VD: Mình ước ao thêm middleware CheckLevel sống VD trên:
protected $middleware = < IlluminateFoundationHttpMiddlewareCheckForMaintenanceMode::class, AppHttpMiddlewareCheckLevel::class, >;Route middleware
Khác với global middleware Route middleware chỉ áp dụng được khi chúng ta Gọi nó sống trong Route.
Xem thêm: Top Pes Hay Nhất 6,9,11,16, Pes 2013 Full Crack Và Link Tải, Tai Pes 2011 Crack Cho Pc
Để đăng ký Route middleware thì phần lớn tín đồ cũng rất cần phải vào app/Http/Kernel.php tìm tới đoạn:
/** * The application"s route middleware. * * These middleware may be assigned khổng lồ groups or used individually. * *
var array */ protected $routeMiddleware = < "auth" => AppHttpMiddlewareAuthenticate::class, "auth.basic" => IlluminateAuthMiddlewareAuthenticateWithBasicAuth::class, "bindings" => IlluminateRoutingMiddlewareSubstituteBindings::class, "cabịt.headers" => IlluminateHttpMiddlewareSetCacheHeaders::class, "can" => IlluminateAuthMiddlewareAuthorize::class, "guest" => AppHttpMiddlewareRedirectIfAuthenticated::class, "signed" => IlluminateRoutingMiddlewareValidateSignature::class, "throttle" => IlluminateRoutingMiddlewareThrottleRequests::class, "verified" => IlluminateAuthMiddlewareEnsureEmailIsVerified::class, >;Đăng cam kết cùng với cú pháp:
"Name"=> AppHttpMiddlewareMiddlewareName::classTrong đó:
Name: Là thương hiệu các bạn muốn đặt đến middleware.
MiddlewareName là tên gọi của Middleware những bạn có nhu cầu thêm.
VD: Mình đã thêm middleware CheckLevel vào Route middleware.
"Checklevel"=>AppHttpMiddlewareCheckLevel::class,Sau Khi đăng ký kết thúc middleware những bạn cũng có thể thực hiện nó với route nhỏng sau:
Route::get("admin/profile", function () //)->middleware("Checklevel");Hoặc với nhiều middleware:
Route::get("admin/profile", function () //)->middleware("Middleware1","Middleware2");Hoặc cũng rất có thể thực hiện thương hiệu khá đầy đủ của Middleware nhỏng sau:
use AppHttpMiddlewareCheckLevel;Route::get("admin/profile", function () //)->middleware(CheckLevel::class);Middleware Groups
Với một số loại middleware này bạn cũng có thể gộp các middleware thành các nhóm để Call mang đến nhanh khô.
Để khai báo đội middleware chúng ta tìm tới đoạn:
/** * The application"s route middleware groups. * *
var array */ protected $middlewareGroups = < "web" => < AppHttpMiddlewareEncryptCookies::class, IlluminateCookieMiddlewareAddQueuedCookiesToResponse::class, IlluminateSessionMiddlewareStartSession::class, // IlluminateSessionMiddlewareAuthenticateSession::class, IlluminateViewMiddlewareShareErrorsFromSession::class, AppHttpMiddlewareVerifyCsrfToken::class, IlluminateRoutingMiddlewareSubstituteBindings::class, >, "api" => < "throttle:60,1", "bindings", >, >;Mặc định của Laravel sẽ gồm 2 team middleware là website với api.
Các bạn có nhu cầu ĐK thêm middleware thì đăng ký theo cú pháp tương tự như như mặc định của Laravel.
Và thực hiện vào Route với cú pháp:
Route::get("/", function () //)->middleware("web");Hoặc
Route::group(<"middleware" => <"web">>, function () //);Sorting Middleware
Quý khách hàng rất có thể đăng ký Middeware theo mức độ ưu tiên:
/** * The priority-sorted list of middleware. * * This forces non-global middleware to lớn always be in the given order. * *
var array */protected $middlewarePriority = < IlluminateSessionMiddlewareStartSession::class, IlluminateViewMiddlewareShareErrorsFromSession::class, AppHttpMiddlewareAuthenticate::class, IlluminateSessionMiddlewareAuthenticateSession::class, IlluminateRoutingMiddlewareSubstituteBindings::class, IlluminateAuthMiddlewareAuthorize::class,>;
Lời kết
Qua bài này mình đã trả lời hầu như người thao tác làm việc cùng với middleware vào Laravel. Tuy nhiên nó còn tồn tại 2 loại middleware nữa bản thân ko trình làng tại chỗ này vị cực kỳ ít khi thực hiện, ai quyên tâm có thể coi ở đây.Bất kỳ thắc mắc tuyệt thử dùng gì thì chúng ta bình luận phía dưới, mình đã giải đáp ạ. Cảm ơn các bạn vẫn quan sát và theo dõi nội dung bài viết của chính bản thân mình.
Hẹn chạm mặt lại các bạn vào bài viết tiếp theo. Thân!
Tmê mệt khảo : https://laravel.com/docs/5.7/middleware, https://toidicode.com/middleware-trong-laravel-51.html