Eyi tumọ si pe nigbati olumulo (Wiwo Laravel) ṣe ibeere si olupin (oluṣakoso Laravel), ibeere naa yoo lọ nipasẹ agbedemeji agbedemeji. Ni ọna yii ẹrọ agbedemeji le ṣayẹwo boya ibeere naa jẹ ijẹrisi tabi rara:
Laravel faye gba o lati definire ati lo afikun agbedemeji agbedemeji lati ṣe ọpọlọpọ awọn iṣẹ-ṣiṣe ayafi ijẹrisi.
Awọn agbedemeji Laravel, gẹgẹbi ijẹrisi ati aabo CSRF, wa ninu itọsọna naa app/Http/Middleware .
Nitorinaa a le sọ pe middleware jẹ àlẹmọ ibeere http, nipasẹ eyiti o ṣee ṣe lati rii daju awọn ipo ati ṣe awọn iṣe.
Lati ṣẹda agbedemeji agbedemeji tuntun a nṣiṣẹ aṣẹ wọnyi:
php artisan make:middleware <name-of-middleware>
A ṣẹda awọn middleware
a si pe e CheckAge
, artisan
yoo dahun wa bi wọnyi:
Ferese ti o wa loke fihan pe a ti ṣẹda agbedemeji agbedemeji pẹlu orukọ ” Ṣayẹwo Ọjọ ori ".
Lati rii boya CheckAge middleware ti ṣẹda tabi rara, lọ si iṣẹ akanṣe ni app/Http/Middleware folda, iwọ yoo rii faili tuntun ti a ṣẹda.
Faili tuntun ti o ṣẹda ni koodu atẹle
<?php
namespace App\Http\Middleware;
use Closure;
class CheckAge
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
return $next($request);
}
}
Lati lo middleware, a nilo lati forukọsilẹ.
Awọn oriṣi meji ti middleware wa ni Laravel:
Middleware globale
Route Middleware
Il agbaye middleware yoo wa ni executed lori gbogbo HTTP ìbéèrè lati awọn ohun elo, nigba ti Route Middleware yoo wa ni sọtọ si kan pato ona. Middleware le forukọsilẹ ni app/Http/Kernel.php. Faili yii ni awọn ohun-ini meji ninu $middelware e $ RouteMiddleware . Ohun ini $midlware ti wa ni lo lati forukọsilẹ agbaye middleware ati nini $ RouteMiddleware ti wa ni lo lati forukọsilẹ ipa-pato middleware.
Lati forukọsilẹ agbaye middleware, ṣe atokọ kilasi ni opin ohun-ini $middware.
protected $middleware = [
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];
Lati forukọsilẹ ipa-pato middleware, ṣafikun bọtini ati iye si ohun-ini $routeMiddleware.
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
];
A ṣẹda Ṣayẹwo Ọjọ ori ninu apẹẹrẹ ti tẹlẹ. A le forukọsilẹ bayi ni ohun-ini ipa ọna agbedemeji. Awọn koodu fun iru kan ìforúkọsílẹ ti wa ni han ni isalẹ.
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'Age' => \App\Http\Middleware\CheckAge::class,
];
A tun le kọja awọn paramita pẹlu Middleware.
Fun apẹẹrẹ, ti ohun elo rẹ ba ni awọn ipa oriṣiriṣi bii olumulo, alabojuto, super admin bbl ati pe o fẹ lati jẹrisi iṣe ti o da lori ipa, o le ṣe nipasẹ gbigbe awọn aye-aye pẹlu agbedemeji agbedemeji.
Middleware ti a ṣẹda ni iṣẹ atẹle, ati pe a le ṣe awọn ariyanjiyan aṣa lẹhin ariyanjiyan naa $tókàn .
public function handle($request, Closure $next)
{
return $next($request);
}
Bayi jẹ ki a gbiyanju lati ṣeto paramita ipa si agbedemeji agbedemeji tuntun ti a yoo ṣẹda lati ibere, lẹhinna tẹsiwaju lati ṣẹda Ipa Middleware nipa ṣiṣe aṣẹ atẹle
Ṣe atunṣe ọna mimu bi atẹle
<?php
namespace App\Http\Middleware;
use Closure;
class RoleMiddleware {
public function handle($request, Closure $next, $role) {
echo "Role: ".$role;
return $next($request);
}
}
a fi paramita kun $role
, ati inu ọna ila echo
lati kọ abajade orukọ ipa naa.
Bayi jẹ ki a forukọsilẹ RoleMiddleware middleware fun ọna kan pato
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'Age' => \App\Http\Middleware\CheckAge::class,
'Role' => \App\Http\Middleware\RoleMiddleware::class,
];
Bayi lati ṣe idanwo agbedemeji agbedemeji pẹlu paramita, a nilo lati ṣẹda ibeere ati esi kan. Lati ṣe afiwe idahun jẹ ki a ṣẹda oludari ti a yoo pe TestController
php artisan make:controller TestController --plain
aṣẹ ti o kan ṣẹ yoo ṣẹda oludari tuntun inu folda naa app/Http/TestController.php
, ki o si yipada ọna index
pẹlu ila echo "<br>Test Controller.";
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class TestController extends Controller {
public function index() {
echo "<br>Test Controller.";
}
}
Lẹhin ti iṣeto idahun, a kọ ibeere naa nipa ṣiṣatunṣe faili naa routes.php
nipa fifi awọn route role
Route::get('role',[
'middleware' => 'Role:editor',
'uses' => 'TestController@index',
]);
ni aaye yii a le gbiyanju apẹẹrẹ nipa lilo si URL naa http://localhost:8000/role
ati ninu ẹrọ aṣawakiri a yoo rii awọn mejeeji echo
Role editor
Test Controller
Il terminable Middleware
ṣe diẹ ninu awọn iṣẹ-ṣiṣe lẹhin ti o ti firanṣẹ esi si ẹrọ aṣawakiri. Eyi le ṣee ṣe nipasẹ ṣiṣẹda agbedemeji agbedemeji pẹlu ọna naa fopin si ni middleware. Il terminable Middleware
gbọdọ wa ni aami-pẹlu awọn middleware
agbaye. Ọna naa terminate
yoo gba awọn ariyanjiyan meji ibere $ e $ idahun.
Ọna naa Terminate
gbọdọ ṣẹda bi o ṣe han ninu koodu atẹle.
php artisan make:middleware TerminateMiddleware
Ni kete ti awọn middleware ti wa ni da app/Http/Middleware/TerminateMiddleware.php
jẹ ki ká yipada koodu bi wọnyi
<?php
namespace App\Http\Middleware;
use Closure;
class TerminateMiddleware {
public function handle($request, Closure $next) {
echo "Executing statements of handle method of TerminateMiddleware.";
return $next($request);
}
public function terminate($request, $response) {
echo "<br>Executing statements of terminate method of TerminateMiddleware.";
}
}
ninu apere yi a ni ọna kan handle
ati ọna kan terminate
pẹlu awọn meji sile $request
e $response
.
Bayi jẹ ki a forukọsilẹ Middleware
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'Age' => \App\Http\Middleware\CheckAge::class,
'Role' => \App\Http\Middleware\RoleMiddleware::class,
'terminate' => \App\Http\Middleware\TerminateMiddleware::class,
];
Bayi a nilo lati ṣẹda oludari lati ṣedasilẹ esi
php artisan make:controller XYZController --plain
iyipada awọn akoonu ti awọn kilasi
class XYZController extends Controller {
public function index() {
echo "<br>XYZ Controller.";
}
}
Bayi a nilo lati ṣatunkọ faili naa routes/web.php
fifi awọn ipa-ọna ti o nilo lati mu ibeere naa ṣiṣẹ
Route::get('terminate',[
'middleware' => 'terminate',
'uses' => 'XYZController@index',
]);
ni aaye yii a le gbiyanju apẹẹrẹ nipa lilo si URL naa http://localhost:8000/terminate
ati ninu ẹrọ aṣawakiri a yoo rii awọn ila wọnyi
Executing statements of handle method of TerminateMiddleware
XYZController
Executing statements of terminate method of TerminateMiddleware
Ercole Palmeri
O le tun fẹ:
Ẹka ọgagun jẹ agbara eto-aje agbaye ni otitọ, eyiti o ti lọ kiri si ọja 150 bilionu kan…
Ni ọjọ Aarọ to kọja, Awọn akoko Iṣowo kede adehun kan pẹlu OpenAI. FT ṣe iwe-aṣẹ iwe-akọọlẹ agbaye rẹ…
Awọn miliọnu eniyan sanwo fun awọn iṣẹ ṣiṣanwọle, san awọn idiyele ṣiṣe alabapin oṣooṣu. O jẹ ero ti o wọpọ pe o…
Coveware nipasẹ Veeam yoo tẹsiwaju lati pese awọn iṣẹ esi iṣẹlẹ ikọlu cyber. Coveware yoo funni ni awọn oniwadi ati awọn agbara atunṣe…