ይህ ማለት ተጠቃሚው (ላራቬል እይታ) ለአገልጋዩ (ላራቬል ተቆጣጣሪ) ጥያቄ ሲያቀርብ ጥያቄው በመካከለኛው ዌር ውስጥ ያልፋል ማለት ነው። በዚህ መንገድ መካከለኛው ዌር ጥያቄው የተረጋገጠ መሆኑን ወይም አለመሆኑን ማረጋገጥ ይችላል፡-
ላራቬል ይፈቅዳል defiከማረጋገጫ በስተቀር የተለያዩ ተግባራትን ለማከናወን ተጨማሪ መካከለኛ ዌርን ጨርስ እና ተጠቀም።
እንደ ማረጋገጫ እና CSRF ጥበቃ ያሉ የላራቭል መካከለኛ ዕቃዎች በማውጫው ውስጥ ይገኛሉ መተግበሪያ/ኤችቲቲፒ/ሚድልዌር .
ስለዚህ መካከለኛ ዌር የ http ጥያቄ ማጣሪያ ነው ማለት እንችላለን፣ በዚህም ሁኔታዎችን ማረጋገጥ እና ድርጊቶችን ማከናወን ይቻላል።
አዲስ መካከለኛ ዌር ለመፍጠር የሚከተለውን ትዕዛዝ እናስኬዳለን፡
php artisan make:middleware <name-of-middleware>
እኛ እንፈጥራለን middleware
እና እንጠራዋለን CheckAge
, artisan
እንደሚከተለው ይመልስልናል።
ከላይ ያለው መስኮት መካከለኛ ዌር በስም በተሳካ ሁኔታ መፈጠሩን ያሳያል ” CheckAge ".
የCheckAge middleware መፈጠሩን ወይም አለመፈጠሩን ለማየት በመተግበሪያ/ኤችቲቲፒ/ሚድልዌር አቃፊ ውስጥ ወዳለው ፕሮጀክት ይሂዱ እና አዲስ የተፈጠረውን ፋይል ያያሉ።
አዲስ የተፈጠረው ፋይል የሚከተለው ኮድ አለው።
<?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);
}
}
መካከለኛ ዌር ለመጠቀም፣ መመዝገብ አለብን።
በላራቬል ውስጥ ሁለት አይነት መካከለኛ እቃዎች አሉ፡-
Middleware globale
Route Middleware
Il ዓለም አቀፍ መካከለኛ ከመተግበሪያው በሚቀርብ እያንዳንዱ የኤችቲቲፒ ጥያቄ ላይ ይፈጸማል፣ የ ሚድዌር መስመር ለተወሰነ መንገድ ይመደባል. ሚድልዌር በ ላይ መመዝገብ ይችላል። መተግበሪያ/ኤችቲቲፒ/Kernel.php። ይህ ፋይል ሁለት ንብረቶችን ይዟል $ሚድልዌር e $ RouteMiddleware . የ$ሚድልዌር ንብረት አለምአቀፍ መካከለኛ ዌር እና ባለቤትነትን ለመመዝገብ ጥቅም ላይ ይውላል $ RouteMiddleware መንገድ-ተኮር መካከለኛ ዌር ለመመዝገብ ይጠቅማል።
አለምአቀፍ ሚድልዌርን ለመመዝገብ በ$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,
];
መንገድ-ተኮር ሚድልዌርን ለመመዝገብ ቁልፉን እና እሴቱን ወደ $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,
];
እኛ ፈጠርን። CheckAge በቀድሞው ምሳሌ. አሁን ይህንን በመሃል ዌር መስመር ንብረት ውስጥ መመዝገብ እንችላለን። የእንደዚህ አይነት ምዝገባ ኮድ ከዚህ በታች ይታያል.
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,
];
እንዲሁም መለኪያዎችን ከመካከለኛውዌር ጋር ማለፍ እንችላለን።
ለምሳሌ፣ የእርስዎ መተግበሪያ እንደ ተጠቃሚ፣ አስተዳዳሪ፣ ሱፐር አስተዳዳሪ ወዘተ ያሉ የተለያዩ ሚናዎች ካሉት። እና በተግባሩ ላይ በመመስረት ድርጊቱን ማረጋገጥ ይፈልጋሉ, መለኪያዎችን ከመሃል ዌር ጋር በማለፍ ማድረግ ይችላሉ.
እኛ የፈጠርነው መሃከለኛ ዌር የሚከተለውን ተግባር ይዟል፣ እና ከክርክሩ በኋላ ብጁ ክርክሮችን ማለፍ እንችላለን $ ቀጣይ .
public function handle($request, Closure $next)
{
return $next($request);
}
አሁን ከባዶ ልንፈጥረው ወደምንፈልገው አዲስ ሚድልዌር የሚና መለኪያውን ለማዘጋጀት እንሞክር፡ በመቀጠል የሚከተለውን ትዕዛዝ በማስኬድ ሮል ሚድዌር ለመፍጠር እንሞክር።
የመያዣውን ዘዴ እንደሚከተለው አስተካክል
<?php
namespace App\Http\Middleware;
use Closure;
class RoleMiddleware {
public function handle($request, Closure $next, $role) {
echo "Role: ".$role;
return $next($request);
}
}
መለኪያውን ጨምረናል $role
, እና በስልቱ ውስጥ መስመሩ echo
ውጤቱን የሚናውን ስም ለመጻፍ.
አሁን ለተወሰነ መንገድ የRoleMiddleware 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,
];
አሁን መካከለኛውን በመለኪያው ለመሞከር, ጥያቄ እና ምላሽ መፍጠር አለብን. ምላሹን ለማስመሰል TestController የምንለውን መቆጣጠሪያ እንፍጠር
php artisan make:controller TestController --plain
አሁን የተፈጸመው ትዕዛዝ በአቃፊው ውስጥ አዲስ መቆጣጠሪያ ይፈጥራል app/Http/TestController.php
, እና ዘዴውን ይለውጡ index
ከመስመሩ ጋር 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.";
}
}
ምላሹን ካዘጋጀን በኋላ, ፋይሉን በማረም ጥያቄውን እንገነባለን routes.php
በማከል route role
Route::get('role',[
'middleware' => 'Role:editor',
'uses' => 'TestController@index',
]);
በዚህ ጊዜ ዩአርኤልን በመጎብኘት ምሳሌውን መሞከር እንችላለን http://localhost:8000/role
እና በአሳሹ ውስጥ ሁለቱን እናያለን echo
Role editor
Test Controller
Il terminable Middleware
ምላሹ ወደ አሳሹ ከተላከ በኋላ አንዳንድ ተግባራትን ያከናውናል. ይህ ዘዴ መካከለኛ ዌር በመፍጠር ማግኘት ይቻላል በመካከለኛው ዌር ውስጥ ማቆም. Il terminable Middleware
ጋር መመዝገብ አለበት middleware
ዓለም አቀፍ. ዘዴው terminate
ሁለት ክርክሮችን ይቀበላል $ጥያቄ e $ ምላሽ
ዘዴው Terminate
በሚከተለው ኮድ እንደሚታየው መፈጠር አለበት።
php artisan make:middleware TerminateMiddleware
መካከለኛው ከተፈጠረ በኋላ app/Http/Middleware/TerminateMiddleware.php
ኮዱን እንደሚከተለው እናሻሽለው
<?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.";
}
}
በዚህ ጉዳይ ላይ አንድ ዘዴ አለን handle
እና ዘዴ terminate
ከሁለቱ መመዘኛዎች ጋር $request
e $response
.
አሁን ሚድልዌርን እንመዘግብ
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,
];
አሁን ምላሹን ለማስመሰል መቆጣጠሪያውን መፍጠር አለብን
php artisan make:controller XYZController --plain
የክፍሉን ይዘት ማሻሻል
class XYZController extends Controller {
public function index() {
echo "<br>XYZ Controller.";
}
}
አሁን ፋይሉን ማረም አለብን routes/web.php
ጥያቄውን ለማግበር የሚያስፈልጉትን መንገዶች መጨመር
Route::get('terminate',[
'middleware' => 'terminate',
'uses' => 'XYZController@index',
]);
በዚህ ጊዜ ዩአርኤልን በመጎብኘት ምሳሌውን መሞከር እንችላለን http://localhost:8000/terminate
እና በአሳሹ ውስጥ የሚከተሉትን መስመሮች እናያለን
Executing statements of handle method of TerminateMiddleware
XYZController
Executing statements of terminate method of TerminateMiddleware
Ercole Palmeri
እንዲሁም የሚከተሉትን ማድረግ ይችላሉ ፦
Coveware by Veeam የሳይበር ዘረፋ የአደጋ ምላሽ አገልግሎቶችን መስጠቱን ይቀጥላል። Coveware የፎረንሲክስ እና የማገገሚያ ችሎታዎችን ያቀርባል…
የመተንበይ ጥገና የዘይት እና ጋዝ ዘርፉን አብዮት እያደረገ ነው፣ ለዕፅዋት አስተዳደር ፈጠራ እና ንቁ አቀራረብ።…
የዩኬ ሲኤምኤ ስለ ቢግ ቴክ ባህሪ በአርቴፊሻል ኢንተለጀንስ ገበያ ላይ ማስጠንቀቂያ ሰጥቷል። እዚያ…
የሕንፃዎችን ኢነርጂ ውጤታማነት ለማሳደግ በአውሮፓ ህብረት የተቀረፀው የ"ኬዝ አረንጓዴ" ድንጋጌ የህግ አውጭ ሂደቱን በ…