Ko te tikanga ka tukuna e te kaiwhakamahi (Tirohanga Laravel) he tono ki te tūmau (kaiwhakahaere Laravel), ka haere te tono ki roto i te middleware. Ma tenei ka taea e te middleware te tirotiro mena kua whakamotuhēhēhia te tono, kaore ranei:
Laravel ka taea e koe defiwhakaoti me te whakamahi i etahi atu taputapu waenga hei mahi i nga momo mahi engari ko te motuhēhēnga.
Ko nga taputapu waenga Laravel, penei i te motuhēhēnga me te tiaki CSRF, kei roto i te raarangi taupānga/Http/Middleware .
Na reira ka taea e matou te kii ko te middleware he tātari tono http, ma reira ka taea te manatoko i nga tikanga me te mahi i nga mahi.
Hei hanga i tetahi middleware hou ka whakahaerehia e matou te whakahau e whai ake nei:
php artisan make:middleware <name-of-middleware>
Ka hangaia e matou te middleware
a ka kiia e matou CheckAge
, artisan
ka whakahoki mai ki a matou e whai ake nei:
Ko te matapihi o runga e whakaatu ana kua pai te hanga o te middleware me te ingoa ” TakiAge ".
Ki te kite mehemea kua hangaia te CheckAge middleware, kaore ranei, haere ki te kaupapa i roto i te kōpaki taupānga/Http/Middleware, ka kite koe i te konae i hanga hou
Ko te konae katahi ano ka hangaia te waehere e whai ake nei
<?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);
}
}
Hei whakamahi i te middleware, me rehita tatou.
E rua nga momo middleware i Laravel:
Middleware globale
Route Middleware
Il takawaenga o te ao ka mahia i runga i nga tono HTTP katoa mai i te tono, ko te Huarahi Waenganui ka tohua ki tetahi ara motuhake. Ka taea te rehita Middleware i app/Http/Kernel.php. E rua ngā āhuatanga o tēnei kōnae $waewae e $routeMiddleware . Te taonga $middleware ka whakamahia ki te rehita i te ao waenga me te mana rangatira $routeMiddleware ka whakamahia ki te rehita i nga taputapu takawaenga ara-motuhake.
Hei rehita i te ao waenga, whakarārangihia te akomanga ki te mutunga o te taonga $middleware.
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,
];
Hei rehita i nga taputapu waenga-a-ara, taapirihia te matua me te uara ki te taonga $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,
];
I hanga e matou TakiAge i te tauira o mua. Ka taea e tatou te rehita i tenei ki te taonga ara waenga. Ko te waehere mo taua rehitatanga e whakaatuhia ana i raro nei.
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,
];
Ka taea hoki e tatou te tuku tawhā me te Middleware.
Hei tauira, mena he rereke nga tuunga o to tono penei i te kaiwhakamahi, te kaiwhakahaere, te super admin etc. a ka hiahia koe ki te whakamotuhēhē i te mahi i runga i te mahi, ka taea e koe ma te whakawhiti i nga tawhā me te middleware.
Kei roto i te middleware i hanga e matou te mahi e whai ake nei, a ka taea e matou te tuku tohenga ritenga i muri i te tautohe $muri .
public function handle($request, Closure $next)
{
return $next($request);
}
Inaianei me ngana ki te tautuhi i te tawhā mahi ki tetahi middleware hou ka hangaia e tatou mai i te wahanga, katahi ka haere ki te hanga Role Middleware ma te whakahaere i te whakahau e whai ake nei.
Whakarerekētia te tikanga kakau ka whai ake
<?php
namespace App\Http\Middleware;
use Closure;
class RoleMiddleware {
public function handle($request, Closure $next, $role) {
echo "Role: ".$role;
return $next($request);
}
}
i tapiritia e matou te tawhā $role
, me roto i te tikanga te raina echo
ki te tuhi i te putanga te ingoa o te mahi.
Inaianei me rehita tatou i te RoleMiddleware middleware mo tetahi ara motuhake
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,
];
Inaianei ki te whakamatautau i te middleware me te tawhā, me hanga he tono me te whakautu. Hei whakataurite i te whakautu me hanga e tatou te kaiwhakahaere ka kiia ko TestController
php artisan make:controller TestController --plain
ko te whakahau ka mahia ka hangaia he kaiwhakahaere hou ki roto i te kōpaki app/Http/TestController.php
, ka huri i te tikanga index
me te raina 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.";
}
}
I muri i te whakarite i te whakautu, ka hangaia e matou te tono ma te whakatika i te konae routes.php
mā te tāpiri i te route role
Route::get('role',[
'middleware' => 'Role:editor',
'uses' => 'TestController@index',
]);
i tenei wa ka taea e tatou te whakamatautau i te tauira ma te toro ki te URL http://localhost:8000/role
a i roto i te tirotiro ka kite tatou i nga mea e rua echo
Role editor
Test Controller
Il terminable Middleware
ka mahi i etahi mahi i muri i te tukunga o te whakautu ki te tirotiro. Ka taea tenei ma te hanga i te middleware me te tikanga mutu i roto i te middleware. Il terminable Middleware
me rehita ki te middleware
ao. Ko te tikanga terminate
ka rua nga tautohetohe $tono e $whakautu.
Te tikanga Terminate
me hanga kia rite ki te whakaatu i te waehere e whai ake nei.
php artisan make:middleware TerminateMiddleware
Kia hangahia te middleware app/Http/Middleware/TerminateMiddleware.php
me whakarereke te waehere penei
<?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.";
}
}
i tenei take he tikanga ta matou handle
me tetahi tikanga terminate
me nga tawhā e rua $request
e $response
.
Inaianei me rehita tatou i te 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,
];
Inaianei me hanga e matou te kaiwhakahaere hei whakataurite i te whakautu
php artisan make:controller XYZController --plain
te whakarereke i nga korero o te akomanga
class XYZController extends Controller {
public function index() {
echo "<br>XYZ Controller.";
}
}
Inaianei me whakatika i te konae routes/web.php
te taapiri i nga huarahi e hiahiatia ana hei whakahohe i te tono
Route::get('terminate',[
'middleware' => 'terminate',
'uses' => 'XYZController@index',
]);
i tenei wa ka taea e tatou te whakamatautau i te tauira ma te toro ki te URL http://localhost:8000/terminate
a i roto i te tirotiro ka kite tatou i nga rarangi e whai ake nei
Executing statements of handle method of TerminateMiddleware
XYZController
Executing statements of terminate method of TerminateMiddleware
Ercole Palmeri
Mahia hoki koe:
I te Mane kua hipa, i panuitia e te Financial Times tetahi mahi me OpenAI. Ka raihana a FT i tana kairipoata o te ao…
E hia miriona nga taangata e utu ana mo nga ratonga rerema, e utu ana i nga utu ohaurunga ia marama. Ko te whakaaro noa ko koe…
Ka whakarato tonu a Coveware na Veeam i nga ratonga whakautu mai i nga aitua. Ka tukuna e Coveware nga mahi whakawai me te whakatikatika…
Ko te tiaki matapae kei te huri haere i te waahanga hinu me te hau, me te huarahi auaha me te kaha ki te whakahaere tipu.…