Middleware hutoa utaratibu wa kuchuja na kuchakata maombi ya HTTP yanayoingia katika programu yako — kuendesha msimbo kabla (na hiari baada) ya ombi kufika kwa controller. Hutumika kwa mambo yanayovuka mipaka kama authentication, logging, CORS, na rate limiting.
Jinsi middleware inavyofanya kazi
<?php
class CheckAge {
public function handle(Request $request, Closure $next) {
if ($request->age < 18) {
return redirect('/home'); // BLOCK — short-circuit, don't proceed
}
return $next($request); // PASS the request to the next layer/controller
}
}
Middleware hupokea request na closure ya $next. Msimbo ulio kabla ya $next($request) huendeshwa wakati wa kuingia ndani; kuita $next hupitisha udhibiti mbele; unaweza pia kutenda juu ya response baadaye. Middleware inaweza ku-short-circuit (kurudisha response bila kuita $next, mfano kuzuia ombi lisiloidhinishwa).
Kutumia middleware
// to a route
Route::get('/admin', ...)->middleware('auth');
// to a group of routes
Route::middleware(['auth', 'verified'])->group(function () { ... });
// globally (every request) — registered in the HTTP kernel / bootstrap
Middleware hutumika kwa kila route, kila kundi, au kwa ujumla (globally). Middleware nyingi huendeshwa kwa mfuatano (pipeline).
Middleware za ndani (Laravel hutoa nyingi)
auth → require authentication (redirect/401 if not logged in)
verified → require a verified email
throttle:60,1 → rate limiting (60 requests per minute)
guest → only for non-authenticated users
can:update,post → authorization check
+ CSRF protection, CORS, etc. run as middleware automatically
Laravel huja na middleware kwa mahitaji ya kawaida zaidi — auth (kazi kuu ya kulinda routes), rate limiting, CSRF, na zaidi.
Kwa nini ni muhimu
Middleware ni dhana muhimu ya Laravel kwa kushughulikia mambo yanayovuka mipaka kwa namna safi — mantiki inayopaswa kuendeshwa kwa maombi mengi, kama authentication, authorization, logging, rate limiting, na CORS.
Kuielewa ni muhimu kwa sababu ndiyo namna programu za Laravel zinavyochuja na kulinda maombi: auth middleware ya ndani ni njia ya kawaida ya kulinda routes (kuhitaji login), throttle hutoa rate limiting, na ulinzi wa CSRF huendeshwa kama middleware kiotomatiki — hivyo middleware hutegemeza usalama na tabia ya msingi ya programu.
Kujua jinsi middleware inavyofanya kazi (pipeline ya request/$next, uwezo wa ku-short-circuit kwa kurudisha response kuzuia maombi) na jinsi ya kuitumia (kwa kila route, kila kundi, au kwa ujumla) ni msingi kwa kuunda muundo wa programu kwa usahihi — kuweka mantiki inayovuka mipaka katika middleware badala ya kuirudia katika kila controller.
Middleware ndipo Laravel hushughulikia mambo ya kiwango cha ombi yanayotumika katika routes nyingi, na kuifanya kuwa maarifa muhimu na yanayotumika mara kwa mara kwa kujenga programu salama na zilizopangwa vizuri — hasa auth middleware kwa kulinda routes, ambayo karibu kila programu halisi huitumia.
Kuelewa pipeline ya middleware pia hukusaidia kuandika middleware maalum kwa uchakataji wa maombi maalum wa programu.
