কন্ট্রোলার মিডলওয়্যার:

আমরা আপনার রুট ফাইলের মধ্যে কন্ট্রোলারের রুটে মিডলওয়্যার বরাদ্দ করতে পারি।

কন্ট্রোলারে মিডলওয়্যার বরাদ্দ করার বিভিন্ন উপায় রয়েছে।

web.php ফাইলে কন্ট্রোলারে মিডলওয়্যার বরাদ্দ করা।

আমরা web.php ফাইলের কন্ট্রোলারে মিডলওয়্যার বরাদ্দ করতে পারি । মিডলওয়্যার বরাদ্দ করার জন্য নিম্নলিখিত পদক্ষেপগুলি প্রয়োজনীয়।

স্টেপ-০১: প্রথমে আমরা একটি নিয়ামক তৈরি করি। আমরা ইতিমধ্যে পূর্ববর্তী বিষয়ে PostController নামে নিয়ামক তৈরি করেছি ।

স্টেপ-০২: এখন আমরা মিডলওয়্যার তৈরি করি যা আমরা PostController কে বরাদ্দ করতে চাই ।মিডলওয়্যার তৈরি করতে আমরা নিম্নলিখিত কমান্ড ব্যবহার করি।

  1. php artisan make:middleware Check    

উপরের কমান্ডটি চেক নামে মিডলওয়্যার তৈরি করে।

স্টেপ-০৩: laravelproject/app/http/Middleware ডিরেক্টরিতে তৈরি Check.php ফাইলটি খুলুন ।

  1. <?php  
  2. namespace App\Http\Middleware;  
  3. use Closure;  
  4. class Check  
  5. {  
  6.     /** 
  7.      * Handle an incoming request. 
  8.      * @param  \Illuminate\Http\Request  $request 
  9. @param  \Closure  $next 
  10.      * @return mixed 
  11.      */  
  12.     public function handle($request, Closure $next)  
  13.    {  
  14.         echo "Middleware in Laravel <br><br>";    
  15.         return $next($request);  
  16.     }  
  17. }  

স্টেপ-০৪: এখন আমাদের kernel.php ফাইলে মিডলওয়্যার Check.php- এর পাথ যোগ করতে হবে ।

  1. protected $routeMiddleware = [  
  2.         'auth' => \Illuminate\Auth\Middleware\Authenticate::class,  
  3.         'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,  
  4.         'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,  
  5.         'can' => \Illuminate\Auth\Middleware\Authorize::class,  
  6.         'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,  
  7.         'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,  
  8.         'age' =>  \App\Http\Middleware\CheckAge::class,  
  9.            'check'=>\App\Http\Middleware\Check::class  
  10. ];  

উপরের কোডে হাইলাইট করা বিবৃতিটি মিডলওয়্যারের পথ যোগ করে যেমন Check ।

স্টেপ-০৫: পোস্ট কন্ট্রোলারে মিডলওয়্যার বরাদ্দ করতে web.php ফাইলে নিম্নলিখিত কোডটি যোগ করুন ।

  1. Route::get('posts''PostController@create')->middleware('check');  

উপরের কোডটি মিডলওয়্যারকে বরাদ্দ করে যেমন পোস্ট কন্ট্রোলারে চেক করুন।

স্টেপ-০৬: ওয়েব ব্রাউজারে URL http://localhost/laravelproject/public/posts লিখুন তারপর আউটপুট হবে।

কন্ট্রোলার কনস্ট্রাক্টর ব্যবহার:

মিডলওয়্যার বরাদ্দ করতে আমরা কন্ট্রোলার কনস্ট্রাক্টরও ব্যবহার করতে পারি। এটি আরও সুবিধাজনক কারণ এটি মিডলওয়্যারকে শুধুমাত্র একটি কন্ট্রোলার ক্লাসে নির্দিষ্ট পদ্ধতিতে সীমাবদ্ধ করে।

কন্ট্রোলার কনস্ট্রাক্টর ব্যবহার করে মিডলওয়্যার বরাদ্দ করার জন্য নিম্নলিখিত পদক্ষেপগুলি প্রয়োজনীয়।

আগের কেসের স্টেপ ১ থেকে স্টেপ ৪ পর্যন্ত ধাপগুলি অনুসরণ করুন।

web.php ফাইলে নিম্নলিখিত কোড যোগ করুন ।

  1. Route::get('posts''PostController@create');  

PostController.php ফাইলটি খুলুন । আমরা যদি পোস্টকন্ট্রোলারের show() পদ্ধতিতে মিডলওয়্যার বরাদ্দ করতে চাই আমাদের PostController.php ফাইলে নীচের কোড যোগ করতে হবে।

  1. public function __construct()  
  2.     {  
  3.         $this->middleware('check')->only('show');  
  4.    }    

উপরের কোডটি মিডলওয়্যারকে শুধুমাত্র show() পদ্ধতিতে বরাদ্দ করে।

PostController রে উপরের কোড যোগ করার পরে, PostController এর গঠনটি দেখতে এরকম হবে।

  1. <?php  
  2. namespace App\Http\Controllers;  
  3. use Illuminate\Http\Request;  
  4. class PostController extends Controller  
  5. {  
  6.     /** 
  7.      * Display a listing of the resource. 
  8.      * @return \Illuminate\Http\Response 
  9.      */  
  10.     
  11. $this->middleware(function ($request$next) {  
  12.     // ...  
  13. //  echo "Middleware in Laravel";  
  14.     return $next($request);  
  15. });  
  16.   
  17. public function index(){  
  18.   //  
  19.     }  
  20. /** 
  21.      * Show the form for creating a new resource. 
  22.      * @return \Illuminate\Http\Response 
  23.      */  
  24.       
  25. public function create(){  
  26.     return "this is a create method";  
  27. }  
  28.   
  29. /** 
  30.      * Store a newly created resource in storage. 
  31.       
  32.      * @param  \Illuminate\Http\Request    
  33. $request 
  34.      * @return \Illuminate\Http\Response 
  35.      */  
  36.       
  37. public function store(Request $request)  
  38.  {  
  39.         //  
  40.  }  
  41.   
  42.  /** 
  43.      * Display the specified resource. 
  44.      * @param  int  $id 
  45.      * @return \Illuminate\HttpResponse 
  46.      */  
  47.       
  48. public function show($id)  
  49.   {  
  50.         return "id is :"$id;  
  51.    }  
  52. /** 
  53.      * Show the form for editing the specified resource. 
  54.      * 
  55.      * @param  int  $id 
  56.      * @return   
  57. \Illuminate\Http\Response 
  58.      */  
  59.       
  60. public function edit($id)  
  61.       
  62. {  
  63.           
  64. //  
  65.       
  66. }  
  67.   
  68.       
  69. /** 
  70.      * Update the specified resource in storage. 
  71.      * 
  72.      * @param  \Illuminate\Http\Request    
  73. $request 
  74.      * @param  int  $id 
  75.      * @return \Illuminate\Http\Response 
  76.      */  
  77.       
  78. public function update(Request $request$id)  
  79.       
  80. {  
  81.           
  82. //  
  83.       
  84. }  
  85.   
  86.       
  87. /** 
  88.      * Remove the specified resource from storage. 
  89.      * @param  int  $id 
  90.      * @return  \Illuminate\Http\Response 
  91.      */  
  92.    public function destroy($id)  
  93.   {  
  94.           
  95. //  
  96.     }}  

আউটপুট

আমরা যদি URL http://localhost/laravelproject/public/posts অ্যাক্সেস করি তাহলে আউটপুট হবে।

উপরের আউটপুটটি দেখায় যে যখন আমরা create() মেথড অ্যাক্সেস করি, মিডলওয়্যার Check.php ফাইল(middleware) চালানো হবে না।

যদি আমরা web.php ফাইলের কোড পরিবর্তন করি এবং কোডটি হল।

  1. Route::get('posts/{id}''PostController@show');  

আউটপুট

উপরের ক্ষেত্রে আমরা PostController.php ফাইলের show() পদ্ধতিটি অ্যাক্সেস করছি তাই এটি Check.php ফাইল(মিডলওয়্যার) চালাচ্ছে ।

মিডলওয়্যার বন্ধ:

কন্ট্রোলার আপনাকে মিডলওয়্যার বন্ধ ব্যবহার করে রুট নিবন্ধন করার অনুমতি দেয়। এটি মিডলওয়্যার ক্লাসকে আলাদাভাবে সংজ্ঞায়িত না করেই অ্যাপ্লিকেশনটিকে একটি একক নিয়ামকের জন্য মিডলওয়্যার সংজ্ঞায়িত করার অনুমতি দেয়।

মিডলওয়্যার বন্ধের সিনট্যাক্স:

  1. $this->middleware(function ($request$next) {  
  2.     // ...  
  3.   return $next($request);  
  4. });  

আপনাদের সুবিধার্থে আমি আমার টিপস এন্ড ট্রিকসগুলি ভিডিও আকারে শেয়ার করার জন্য একটি ইউটিউব চ্যানেল তৈরি করেছি। আশা করি চ্যানেলটি Subscribe করবেন।

সৌজন্যে : বাংলাদেশের জনপ্রিয় এবং বর্তমান সময়ের বাংলা ভাষায় সকল গুরুত্বপূর্ণ বিষয়ক টিউটোরিয়াল সাইট - www.TutorialBD71.blogspot.com নিত্যনতুন বিভিন্ন বিষয়ে টিউটোরিয়াল পেতে সাইটটিতে সবসময় ভিজিট করুন।

Leave a Comment