এর মানে হল যে যখন ব্যবহারকারী (Laravel ভিউ) সার্ভারে (Laravel কন্ট্রোলার) একটি অনুরোধ করে, তখন অনুরোধটি মিডলওয়্যারের মাধ্যমে যাবে। এইভাবে মিডলওয়্যার অনুরোধটি প্রমাণীকৃত কিনা তা পরীক্ষা করতে পারে:
লারাভেল আপনাকে অনুমতি দেয় defiপ্রমাণীকরণ ব্যতীত বিভিন্ন কাজ সম্পাদন করার জন্য অতিরিক্ত মিডলওয়্যার শেষ করুন এবং ব্যবহার করুন।
Laravel মিডলওয়্যার, যেমন প্রমাণীকরণ এবং CSRF সুরক্ষা, ডিরেক্টরিতে অবস্থিত অ্যাপ/Http/মিডলওয়্যার .
তাই আমরা বলতে পারি যে মিডলওয়্যার হল একটি HTTP অনুরোধ ফিল্টার, যার মাধ্যমে শর্তগুলি যাচাই করা এবং ক্রিয়া সম্পাদন করা সম্ভব।
একটি নতুন মিডলওয়্যার তৈরি করতে আমরা নিম্নলিখিত কমান্ডটি চালাই:
php artisan make:middleware <name-of-middleware>
আমরা তৈরি করি middleware
এবং আমরা এটা কল CheckAge
, artisan
নিম্নলিখিত হিসাবে আমাদের উত্তর দেবে:
উপরের উইন্ডোটি দেখায় যে মিডলওয়্যারটি নাম দিয়ে সফলভাবে তৈরি করা হয়েছে ” চেক এজ "।
চেকএজ মিডলওয়্যার তৈরি হয়েছে কি না তা দেখতে, অ্যাপ/এইচটিটিপি/মিডলওয়্যার ফোল্ডারে প্রজেক্টে যান এবং আপনি নতুন তৈরি ফাইলটি দেখতে পাবেন
নতুন তৈরি করা ফাইলটিতে নিম্নলিখিত কোড রয়েছে
<?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 গ্লোবাল মিডলওয়্যার অ্যাপ্লিকেশন থেকে প্রতিটি HTTP অনুরোধে কার্যকর করা হবে, যখন রুট মিডলওয়্যার একটি নির্দিষ্ট পথে বরাদ্দ করা হবে। মিডলওয়্যার এ নিবন্ধিত হতে পারে app/Http/Kernel.php. এই ফাইলটিতে দুটি বৈশিষ্ট্য রয়েছে $মিডলওয়্যার e $routeMiddleware . $মিডলওয়্যার সম্পত্তি বিশ্বব্যাপী মিডলওয়্যার এবং মালিকানা নিবন্ধন করতে ব্যবহৃত হয় $routeMiddleware রুট-নির্দিষ্ট মিডলওয়্যার নিবন্ধন করতে ব্যবহৃত হয়।
গ্লোবাল মিডলওয়্যার নিবন্ধন করতে, $মিডলওয়্যার সম্পত্তির শেষে ক্লাসটি তালিকাভুক্ত করুন।
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,
];
আমরা তৈরি করেছি চেক এজ আগের উদাহরণে। আমরা এখন মিডলওয়্যার রুট সম্পত্তিতে এটি নিবন্ধন করতে পারি। এই জাতীয় নিবন্ধনের জন্য কোডটি নীচে দেখানো হয়েছে।
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 মিডলওয়্যার নিবন্ধন করা যাক
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',
]);
এই মুহুর্তে আমরা URL পরিদর্শন করে উদাহরণ চেষ্টা করতে পারি 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',
]);
এই মুহুর্তে আমরা URL পরিদর্শন করে উদাহরণ চেষ্টা করতে পারি http://localhost:8000/terminate
এবং ব্রাউজারে আমরা নিম্নলিখিত লাইনগুলি দেখতে পাব
Executing statements of handle method of TerminateMiddleware
XYZController
Executing statements of terminate method of TerminateMiddleware
Ercole Palmeri
আপনি পছন্দ করতে পারেন:
অ্যাপল ভিশন প্রো কমার্শিয়াল ভিউয়ার ব্যবহার করে ক্যাটানিয়া পলিক্লিনিকে একটি চক্ষুরোগ অপারেশন করা হয়েছিল...
রঙের মাধ্যমে সূক্ষ্ম মোটর দক্ষতার বিকাশ শিশুদের লেখার মতো জটিল দক্ষতার জন্য প্রস্তুত করে। রঙ…
নৌ সেক্টর একটি সত্যিকারের বৈশ্বিক অর্থনৈতিক শক্তি, যা 150 বিলিয়ন বাজারের দিকে নেভিগেট করেছে...
গত সোমবার, ফাইন্যান্সিয়াল টাইমস ওপেনএআই-এর সাথে একটি চুক্তি ঘোষণা করেছে। FT তার বিশ্বমানের সাংবাদিকতার লাইসেন্স দেয়...