লারাভেল সেশনস:

লারাভেল সেশন হল একাধিক ব্যবহারকারীর অনুরোধ জুড়ে ব্যবহারকারীর তথ্য সংরক্ষণ করার একটি উপায়। এটি অ্যাপ্লিকেশনটি দেখার সমস্ত ব্যবহারকারীদের ট্র্যাক রাখে।

একটি উদাহরণের মাধ্যমে অধিবেশনটি বোঝা যাক।

প্রথমত আমরা একটি ফর্ম তৈরি করি যার উপর আমরা সেশনের বৈশিষ্ট্যগুলি প্রয়োগ করি।

form.blade.php

  1. <Html>  
  2. <Head>  
  3. <title> File Upload </title>  
  4. </Head>  
  5. <Body>  
  6. <form method="Post" action="{{route('forms.store')}}">  
  7. @csrf  
  8. <div><label for="Name">Name</label>  
  9. <input type="text" name="username"> </div><br/>  
  10. <div><button type="submit">Submit </button></div>  
  11. </form>  
  12. </body>  

এখন আমরা FormController.php ফাইলে store() ফাংশন সংজ্ঞায়িত করি ।

  1. public function store(Request $request)  
  2. {  
  3.   print_r($request->input('username'));  
  4.  }  

শেষে আমরা web.php এ রুটটি সংজ্ঞায়িত করি ।

  1. Route::get('/session',function()  
  2. {  
  3.   return view('form');  
  4. });  

আউটপুট:

যখন আমরা সাবমিট বাটনে ক্লিক করি তখন স্ক্রীনটি প্রদর্শিত হবে যা নীচে দেখানো হয়েছে।

সেশনে ডেটা সংরক্ষণ করা:

একটি সেশনে ব্যবহারকারীর নাম সংরক্ষণ করার জন্য আমরা নীচে দেখানো সেশনের put() পদ্ধতি ব্যবহার করি। 

$request->session()->put('user', $request->input('username'));

সেশন পুনরুদ্ধার করার জন্য আমরা নিচে দেখানো সেশনের get() পদ্ধতি ব্যবহার করি।

echo $request->session()->get('user');

  1. public function store(Request $request)  
  2. {  
  3. $request->session()->put('user', $request->input('username'));  
  4. echo $request->session()->get('user');   
  5.  }  

আউটপুট:

গ্লোবাল সেশন হেল্পার:

আমরা গ্লোবাল সেশন ফাংশনটিও ব্যবহার করতে পারি যা একটি সেশনে মান সংরক্ষণ করে এবং পুনরুদ্ধার করে। যখন সেশন ফাংশনটি একটি একক প্যারামিটার দিয়ে পাস করা হয় তখন এটি কী টির মান প্রদান করে। যদি সেশনটি key/value জোড়ার অ্যারের সাথে পাস করা হয় তাহলে মানগুলি সেশনে সংরক্ষণ করা হয়।

 // Retrieve a data from the session key.

$data=session('key');

//Providing a default value to the session key.

$data=session('key', 'default');

// Storing the value in the session key.

session(['key'=>'value']);

একটি উদাহরণের মাধ্যমে বোঝা যাক।

FormController.php

  1. public function store(Request $request) {  
  2. session(['user'=>$request->input('username')]);  
  3. $data=session('user');  
  4. echo $data;  
  5.     }  

আউটপুট:

সমস্ত সেশন ডেটা পুনরুদ্ধার করা:

আমরা যদি সমস্ত সেশন ডেটা পুনরুদ্ধার করতে চাই তাহলে আমরা নীচে দেখানো all() পদ্ধতিটি ব্যবহার করতে পারি।

$session_data = $request->session()->all();

আসুন একটি উদাহরণের মাধ্যমে বুঝতে পারি।

FormController.php

  1. public function store(Request $request) {  
  2. session(['user1'=>'anushka']);  
  3. session(['user2'=>'anvi']);  
  4. return $request->session()->all();  
  5.   }  

এখন আমরা web.php ফাইলে রুট সংজ্ঞায়িত করি ।

Route::get('/show','FormController@store');

আউটপুট:

সেশন ডিলিট করা:

এখন আমরা দেখব কিভাবে সেশন থেকে ডেটা মুছে ফেলতে হয়। আমরা forget() পদ্ধতি ব্যবহার করে সেশন মুছে ফেলতে পারি।

একটি উদাহরণের মাধ্যমে বোঝা যাক।

FormController.php

Delete() মেথড ব্যবহার করেও আমরা সেশন ডিলিট করতে পারি। 

  1. We can also delete the session by using delete() method.  
  2. {  
  3. session(['user1'=>'anushka']);  
  4. session(['user2'=>'anvi']);  
  5. $request->session()->forget('user1');  
  6. return $request->session()->all();  
  7.     }  

আউটপুট:

উপরের স্ক্রিনশটটিতে আমরা দেখতে পাচ্ছি যে user1 প্রদর্শিত হয়নি তাই এর মানে হল যে user1 সেশন থেকে মুছে ফেলা হয়েছে।

সেশন থেকে সমস্ত ডেটা মুছে ফেলার জন্য আমরা flush() পদ্ধতি ব্যবহার করব।

$request->session()->flush();

একটি উদাহরণের মাধ্যমে flush() পদ্ধতিটি বোঝা যাক।

  1. public function store(Request $request)  
  2. {  
  3. session(['user1'=>'anushka']);  
  4. session(['user2'=>'anvi']);  
  5. $request->session()->flush();  
  6. return $request->session()->all();  
  7.  }  

আউটপুট:

উপরের স্ক্রিনশটে আমরা লক্ষ্য করেছি যে সেশন থেকে সমস্ত ডেটা মুছে ফেলা হয়েছে এবং এটি একটি খালি অ্যারে প্রদান করে।

ফ্ল্যাশিং ডেটা:

ফ্ল্যাশ ডেটা উপযোগী যখন আমরা বর্তমান অনুরোধের জন্য সেশনে ডেটা সংরক্ষণ করতে চাই কারণ পরবর্তী অনুরোধে ফ্ল্যাশ করা ডেটা সরানো হয়।

একটি উদাহরণের মাধ্যমে ফ্ল্যাশিং ডেটা বোঝা যাক।

  1. public function store(Request $request)  
  2. {  
  3.  session()->flash('post''post has been updated');  
  4. return $request->session()->get('post');  
  5.  }  

আউটপুট:

যখন আমরা কোড থেকে flash() ফাংশনটি সরিয়ে ফেলি তখন কোডটি এরকম দেখাবে।

  1. public function store(Request $request)  
  2.  {  
  3.     return $request->session()->get('post');  
  4. }  

যখন আমরা পৃষ্ঠাটি দুবার রিফ্রেশ করি তখন দ্বিতীয় রিফ্রেশে, সেশন ডেটা মুছে ফেলা হবে।

বিশেষ দ্রষ্টব্য: আপনি যদি বেশ কয়েকটি অনুরোধের জন্য ফ্ল্যাশ ডেটা রাখতে চান তবে আমরা reflash() পদ্ধতি ব্যবহার করি।
session()->reflash();
আপনি যদি বেশ কয়েকটি অনুরোধের জন্য নির্দিষ্ট ডেটা রাখতে চান তবে আমরা keep() পদ্ধতি ব্যবহার করি।
$request->session()->keep('message');

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

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

Leave a Comment