ʻO kēia ke ʻano o ka mea hoʻohana (Laravel view) e noi i ke kikowaena (Laravel controller), e hele ka noi ma waena o ka middleware. Ma kēia ala e hiki ai i ka middleware ke nānā inā hōʻoia ʻia ka noi a ʻaʻole paha:
ʻAe ʻo Laravel iā ʻoe e defihoʻopau a hoʻohana i nā middleware hou e hana i nā hana like ʻole koe ka hōʻoia.
Aia nā Laravel middlewares, e like me ka hōʻoia a me ka pale CSRF, i ka papa kuhikuhi app/Http/Middleware .
No laila hiki iā mākou ke ʻōlelo ʻo ka middleware kahi kānana noi http, kahi e hiki ai ke hōʻoia i nā kūlana a hana i nā hana.
No ka hana ʻana i kahi middleware hou mākou e holo nei i kēia kauoha:
php artisan make:middleware <name-of-middleware>
Hana mākou i ka middleware
a kapa aku makou CheckAge
, artisan
e pane mai iā mākou penei:
Hōʻike ka puka makani ma luna nei ua hana maikaʻi ʻia ka middleware me ka inoa " Makahiki ".
No ka ʻike inā ua hana ʻia ka CheckAge middleware a ʻaʻole paha, e hele i ka papahana ma ka app/Http/Middleware folder, a e ʻike ʻoe i ka faila i hana hou ʻia.
Loaʻa i ka faila i hana hou ʻia kēia code
<?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);
}
}
No ka hoʻohana ʻana i ka middleware, pono mākou e hoʻopaʻa inoa.
ʻElua ʻano middleware ma Laravel:
Middleware globale
Route Middleware
Il mea waena honua e hoʻokō ʻia ma kēlā me kēia noi HTTP mai ka noi, ʻoiai ka Alanui Middleware e hāʻawi ʻia i kahi ala kikoʻī. Hiki ke hoʻopaʻa inoa ʻia ʻo Middleware ma app/Http/Kernel.php. Loaʻa i kēia faila nā waiwai ʻelua $waena e $alanuiMiddleware . Ka waiwai $middleware hoʻohana ʻia e hoʻopaʻa inoa i ka middleware honua a me ka ʻona $alanuiMiddleware hoʻohana ʻia e hoʻopaʻa inoa i nā middleware kikoʻī.
No ka hoʻopaʻa inoa ʻana i ka middleware honua, e papa inoa i ka papa ma ka hope o ka waiwai $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,
];
No ka hoʻopaʻa inoa ʻana i nā middleware kikoʻī ala, hoʻohui i ke kī a me ka waiwai i ka waiwai $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,
];
Ua hana mākou Makahiki i ka laʻana mua. Hiki iā mākou ke hoʻopaʻa inoa i kēia ma ka waiwai ala waena. Hōʻike ʻia ke code no ia inoa inoa ma lalo 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,
];
Hiki iā mākou ke hāʻawi i nā ʻāpana me Middleware.
No ka laʻana, inā he ʻokoʻa nā kuleana o kāu noi e like me ka mea hoʻohana, admin, super admin etc. a makemake ʻoe e hōʻoia i ka hana e pili ana i ke kuleana, hiki iā ʻoe ke hana ma ke kau ʻana i nā palena me ka middleware.
Aia ka middleware a mākou i hana ai i kēia hana, a hiki iā mākou ke hāʻawi i nā hoʻopaʻapaʻa maʻamau ma hope o ka hoʻopaʻapaʻa $a'e .
public function handle($request, Closure $next)
{
return $next($request);
}
I kēia manawa, e hoʻāʻo kākou e hoʻonoho i ka ʻāpana hana i kahi middleware hou a mākou e hana ai mai ka ʻōpala, a laila e hoʻomau i ka hana Role Middleware ma ka holo ʻana i kēia kauoha.
E hoʻololi i ke ʻano hana e like me kēia
<?php
namespace App\Http\Middleware;
use Closure;
class RoleMiddleware {
public function handle($request, Closure $next, $role) {
echo "Role: ".$role;
return $next($request);
}
}
ua hoʻohui mākou i ka ʻāpana $role
, a i loko o ke ala ka laina echo
e kākau i ka huaʻōlelo i ka inoa o ka hana.
I kēia manawa e hoʻopaʻa inoa i ka RoleMiddleware middleware no kahi ala kikoʻī
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,
];
I kēia manawa e ho'āʻo i ka middleware me ka palena, pono mākou e hana i kahi noi a me kahi pane. No ka hoʻohālikelike ʻana i ka pane e hana mākou i ka mea hoʻoponopono e kapa mākou iā TestController
php artisan make:controller TestController --plain
ʻO ke kauoha i hoʻokō ʻia e hana i kahi mana hou i loko o ka waihona app/Http/TestController.php
, a hoʻololi i ke ʻano index
me ka laina 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.";
}
}
Ma hope o ka hoʻonohonoho ʻana i ka pane, kūkulu mākou i ka noi ma ka hoʻoponopono ʻana i ka faila routes.php
ma ka hoohui ana i ka route role
Route::get('role',[
'middleware' => 'Role:editor',
'uses' => 'TestController@index',
]);
i kēia manawa hiki iā mākou ke hoʻāʻo i ka laʻana ma ke kipa ʻana i ka URL http://localhost:8000/role
a ma ka polokalamu kele e ʻike mākou i nā mea ʻelua echo
Role editor
Test Controller
Il terminable Middleware
hana i kekahi mau hana ma hope o ka hoʻouna ʻia ʻana o ka pane i ka polokalamu kele pūnaewele. Hiki ke hoʻokō ʻia kēia ma ka hana ʻana i kahi middleware me ke ʻano hoʻopau i ka middleware. Il terminable Middleware
pono e kakau inoa me ka middleware
puni honua. ʻO keʻano terminate
e loaʻa i nā manaʻo ʻelua $noi e $ pane.
Ke ʻano hana Terminate
pono e hana ʻia e like me ka mea i hōʻike ʻia ma ke code aʻe.
php artisan make:middleware TerminateMiddleware
Ke hana ʻia ka middleware app/Http/Middleware/TerminateMiddleware.php
e hoʻololi i ke code 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 kēia hihia he ala mākou handle
a me kahi ala terminate
me na palena elua $request
e $response
.
I kēia manawa e hoʻopaʻa inoa i ka 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,
];
I kēia manawa pono mākou e hana i ka mea hoʻoponopono e hoʻohālikelike i ka pane
php artisan make:controller XYZController --plain
hoʻololi i nā mea o ka papa
class XYZController extends Controller {
public function index() {
echo "<br>XYZ Controller.";
}
}
I kēia manawa pono mākou e hoʻoponopono i ka faila routes/web.php
hoʻohui i nā ala e pono ai e hoʻāla i ka noi
Route::get('terminate',[
'middleware' => 'terminate',
'uses' => 'XYZController@index',
]);
i kēia manawa hiki iā mākou ke hoʻāʻo i ka laʻana ma ke kipa ʻana i ka URL http://localhost:8000/terminate
a i loko o ka polokalamu kele e ʻike mākou i nā laina aʻe
Executing statements of handle method of TerminateMiddleware
XYZController
Executing statements of terminate method of TerminateMiddleware
Ercole Palmeri
Makemake ʻoe e:
He mana hoʻokele waiwai maoli ka ʻāpana moana, kahi i hoʻokele i kahi mākeke 150 biliona ...
I ka Pōʻakahi i hala, ua hoʻolaha ka Financial Times i kahi kuʻikahi me OpenAI. Laikini ʻo FT i kāna nūpepa papa honua…
E uku ana nā miliona o ka poʻe no nā lawelawe streaming, e uku ana i nā uku kau inoa o kēlā me kēia mahina. He manaʻo maʻamau ʻoe…
E hoʻomau ʻo Coveware e Veeam i ka hoʻolako ʻana i nā lawelawe pane ʻana i ka hanana cyber extortion. E hāʻawi ʻo Coveware i nā forensics a me nā mana hoʻoponopono…