Nke a pụtara na mgbe onye ọrụ (Laravel view) na-arịọ arịrịọ na ihe nkesa (Laravel controller), arịrịọ ahụ ga-agafe na etiti etiti. Otu a middleware nwere ike ịlele ma ọ bụrụ na akwadoro arịrịọ a ma ọ bụ na ọ bụghị:
Laravel na-enye gị ohere defimechaa ma jiri middleware agbakwunyere rụọ ọrụ dị iche iche ma ewezuga nkwenye.
Laravel middlewares, dị ka nyocha na nchekwa CSRF, dị na ndekọ aha ngwa/Http/Middleware .
Ya mere, anyị nwere ike ịsị na middleware bụ ihe nzacha arịrịọ http, nke ọ ga-ekwe omume iji nyochaa ọnọdụ ma mee omume.
Iji mepụta middleware ọhụrụ anyị na-agba iwu a:
php artisan make:middleware <name-of-middleware>
Anyị na-eke middleware
na anyị na-akpọ ya CheckAge
, artisan
ga-aza anyị otu a:
Window dị n'elu na-egosi na ejiri aha ya mee nke ọma na middleware. CheckAge ".
Iji hụ ma ọ bụrụ na emepụtara CheckAge middleware ma ọ bụ na ọ bụghị, gaa na ọrụ ahụ na folda ngwa / HTTP / Middleware, ị ga-ahụ faịlụ emepụtara ọhụrụ.
Faịlụ emepụtara ọhụrụ nwere koodu a
<?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);
}
}
Iji jiri middleware, anyị kwesịrị ịdebanye aha ya.
Enwere ụdị middleware abụọ na Laravel:
Middleware globale
Route Middleware
Il Global middleware a ga-egbu na arịrịọ HTTP ọ bụla sitere na ngwa ahụ, ebe a Ụzọ Middleware a ga-ekenye ya n'otu ụzọ a kapịrị ọnụ. Enwere ike ịdebanye aha Middleware na ngwa/Http/Kernel.php. Faịlụ a nwere akụrụngwa abụọ $middware e $routeMiddleware . Ihe onwunwe $middware a na-eji edebanye aha etiti na ihe nwe ụwa $routeMiddleware a na-eji edebanye aha etiti-kpọmkwem ụzọ.
Ka ịdebanye aha middleware zuru ụwa ọnụ, depụta klaasị na njedebe nke ihe onwunwe $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,
];
Ka ịdebanye aha etiti-kpọmkwem ụzọ, tinye igodo na uru na akụrụngwa $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,
];
Anyị kere CheckAge na ihe atụ gara aga. Anyị nwere ike ịdebanye aha nke a na ụlọ ụzọ etiti. Egosiri koodu maka ndebanye aha dị n'okpuru.
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,
];
Anyị nwekwara ike ịgafe paramita na Middleware.
Dịka ọmụmaatụ, ọ bụrụ na ngwa gị nwere ọrụ dị iche iche dị ka onye ọrụ, admin, super admin wdg. na ịchọrọ ịchọpụta ihe omume dabere na ọrụ ahụ, ị nwere ike ime ya site na ịgafe paramita na middleware.
Middleware anyị mepụtara nwere ọrụ ndị a, anyị nwere ike ịgafe arụmụka omenala mgbe arụmụka ahụ gasịrị $ ọzọ .
public function handle($request, Closure $next)
{
return $next($request);
}
Ugbu a, ka anyị gbalịa ịtọ paramita ọrụ na etiti ọhụrụ nke anyị ga-emepụta site na ọkọ, wee gaba n'ihu mepụta Role Middleware site na iji iwu na-esonụ.
Gbanwee usoro aka dị ka ndị a
<?php
namespace App\Http\Middleware;
use Closure;
class RoleMiddleware {
public function handle($request, Closure $next, $role) {
echo "Role: ".$role;
return $next($request);
}
}
anyị gbakwunyere oke $role
, na n'ime usoro ahịrị echo
iji dee mmepụta aha ọrụ.
Ugbu a, ka anyị deba aha RoleMiddleware middleware maka otu ụzọ
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,
];
Ugbu a iji nwalee middleware na oke, anyị kwesịrị ịmepụta arịrịọ na nzaghachi. Iji megharịa nzaghachi ka anyị mepụta njikwa nke anyị ga-akpọ TestController
php artisan make:controller TestController --plain
iwu nke emezuru ga-emepụta onye njikwa ọhụrụ n'ime folda ahụ app/Http/TestController.php
, ma gbanwee usoro index
ya na ahịrị 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.";
}
}
Mgbe ịtọlitechara nzaghachi, anyị na-ewu arịrịọ site na dezie faịlụ routes.php
site n'ịgbakwunye route role
Route::get('role',[
'middleware' => 'Role:editor',
'uses' => 'TestController@index',
]);
N'oge a anyị nwere ike ịnwale ihe atụ site na ịga na URL http://localhost:8000/role
na ihe nchọgharị anyị ga-ahụ abụọ echo
Role editor
Test Controller
Il terminable Middleware
na-arụ ọrụ ụfọdụ mgbe ezigara nzaghachi na ihe nchọgharị ahụ. Enwere ike nweta nke a site na ịmepụta etiti na usoro ahụ kwụsị na middleware. Il terminable Middleware
ga-edebanye aha na middleware
zuru ụwa ọnụ. Usoro terminate
ga-enweta arụmụka abụọ arịrịọ $ e $ nzaghachi.
Usoro Terminate
ga-emepụta dị ka egosiri na koodu na-esonụ.
php artisan make:middleware TerminateMiddleware
Ozugbo emepụtara middleware app/Http/Middleware/TerminateMiddleware.php
ka anyị gbanwee koodu dị ka ndị a
<?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.";
}
}
na nke a anyị nwere usoro handle
na usoro terminate
na abụọ parameters $request
e $response
.
Ugbu a, ka anyị debanye aha 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,
];
Ugbu a, anyị kwesịrị ịmepụta onye na-ahụ maka njikwa iji megharịa nzaghachi
php artisan make:controller XYZController --plain
na-agbanwe ọdịnaya nke klas ahụ
class XYZController extends Controller {
public function index() {
echo "<br>XYZ Controller.";
}
}
Ugbu a, anyị kwesịrị idezi faịlụ routes/web.php
na-agbakwụnye ụzọ ndị achọrọ iji mee ka arịrịọ ahụ rụọ ọrụ
Route::get('terminate',[
'middleware' => 'terminate',
'uses' => 'XYZController@index',
]);
N'oge a anyị nwere ike ịnwale ihe atụ site na ịga na URL http://localhost:8000/terminate
na ihe nchọgharị anyị ga-ahụ ahịrị ndị a
Executing statements of handle method of TerminateMiddleware
XYZController
Executing statements of terminate method of TerminateMiddleware
Ercole Palmeri
Nwekwara ike ịchọrọ:
Coveware nke Veeam ga-aga n'ihu na-enye ọrụ nzaghachi ihe omume cyber. Coveware ga-enye forensics na ike mmezi…
Ndozi amụma na-agbanwe mpaghara mmanụ & gas, na-enwe usoro ọhụrụ na ngwa ngwa maka njikwa ihe ọkụkụ.…
UK CMA enyela ịdọ aka ná ntị gbasara omume Big Tech na ahịa ọgụgụ isi. Ebe ahụ…
Iwu “Case Green”, nke European Union chepụtara iji kwalite nrụpụta ike nke ụlọ, ejirila…