প্রবন্ধ

লারাভেলে সেশন কি, কনফিগারেশন এবং উদাহরণ সহ ব্যবহার

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

তারা বর্তমান ব্যবহারকারীর জন্য ডেটা বজায় রাখার একটি সহজ উপায়। এই টিউটোরিয়ালটি আপনাকে লারাভেলের সেশনগুলির সাথে কাজ করার মূল বিষয়গুলি দেবে।

লারাভেল সেশন কি?

লারাভেলে, একটি সেশন হল তথ্য সঞ্চয় করার একটি উপায়, ব্যবহারকারীর করা অনুরোধগুলি সঠিকভাবে পরিচালনা করার জন্য। যখন একজন ব্যবহারকারী লারাভেল অ্যাপ্লিকেশন শুরু করেন, তখন সেই ব্যবহারকারীর জন্য একটি সেশন স্বয়ংক্রিয়ভাবে শুরু হয়। সেশন ডেটা সার্ভারে সংরক্ষণ করা হয় এবং সেশন সনাক্ত করতে ব্যবহারকারীর ব্রাউজারে একটি অনন্য শনাক্তকারী সহ একটি ছোট কুকি পাঠানো হয়।

আপনি একাধিক পৃষ্ঠা বা অনুরোধ জুড়ে ব্যবহার করতে চান এমন ডেটা সঞ্চয় করতে সেশন ব্যবহার করতে পারেন। উদাহরণস্বরূপ, আপনি ব্যবহারকারীর প্রমাণীকরণের জন্য সেশন ব্যবহার করতে পারেন বা আপনার অ্যাপ্লিকেশনে সেশন চলাকালীন ব্যবহার করতে চান এমন অন্যান্য তথ্য সঞ্চয় করতে পারেন।

লারাভেলে সেশন কনফিগারেশন

লারাভেলে সেশনগুলি ব্যবহার করতে, আপনাকে প্রথমে সেগুলি ফাইলে সক্রিয় করতে হবে config/session.php কনফিগারেশন এই ফাইলে সেশন সম্পর্কিত কনফিগারেশন প্যারামিটার সেট করা সম্ভব। যেমন সেশনের সময়কাল, সেশন ডেটা সঞ্চয় করার জন্য ব্যবহার করা ড্রাইভার এবং সেশন ডেটার জন্য স্টোরেজ অবস্থান। 

ফাইলটিতে নিম্নলিখিত কনফিগারেশন বিকল্প রয়েছে:
  • চালক: প্রাক সেশন ড্রাইভার নির্দিষ্ট করেdefiব্যবহার উপযোগী. Laravel বেশ কয়েকটি সেশন ড্রাইভার সমর্থন করে: ফাইল, কুকি, ডাটাবেস, apc, memcached, redis, dynamodb এবং অ্যারে;
  • জীবনকাল: সেশনটি বৈধ বলে বিবেচিত হবে এমন মিনিটের সংখ্যা নির্দিষ্ট করে;
  • মেয়াদ শেষ_অন_বন্ধ: যদি সত্যে সেট করা হয়, ব্যবহারকারীর ব্রাউজার বন্ধ হয়ে গেলে সেশনের মেয়াদ শেষ হবে;
  • সঙ্কেতায়িত করুন: true মানে হল যে ফ্রেমওয়ার্ক সেশন ডাটা সংরক্ষণ করার আগে এনক্রিপ্ট করবে;
  • নথি পত্র: ফাইল সেশন ড্রাইভার ব্যবহার করা হলে, এই বিকল্পটি ফাইল স্টোরেজ অবস্থান নির্দিষ্ট করে;
  • সংযোগ: ডাটাবেস সেশন ড্রাইভার ব্যবহার করা হলে, এই বিকল্পটি ব্যবহার করার জন্য ডাটাবেস সংযোগ নির্দিষ্ট করে;
  • টেবিল: যদি ডাটাবেস সেশন ড্রাইভার ব্যবহার করা হয়, এই বিকল্পটি সেশন ডেটা সঞ্চয় করতে ব্যবহার করার জন্য ডাটাবেস টেবিল নির্দিষ্ট করে;
  • লটারি: এলোমেলোভাবে একটি সেশন আইডি কুকি মান নির্বাচন করতে ব্যবহৃত মানগুলির একটি বিন্যাস;
  • মিষ্ট রূটি: এই বিকল্পটি সেশন আইডি সংরক্ষণ করতে ব্যবহৃত কুকির নাম উল্লেখ করে। সেশনের জন্য কুকি সেটিংস কনফিগার করতে পাথ, ডোমেন, সুরক্ষিত, http_only এবং same_site বিকল্পগুলি ব্যবহার করা হয়।

নিচে একটি ফাইলের উদাহরণ দেওয়া হল sessions.php সেশনের সময়কাল 120 ​​সেকেন্ড, ডিরেক্টরিতে সংরক্ষিত ফাইলের ব্যবহার framework/sessions:

<?php

use Illuminate\Support\Str;

return [
    'driver' => env('SESSION_DRIVER', 'file'),
    'lifetime' => env('SESSION_LIFETIME', 120),
    'expire_on_close' => false,
    'encrypt' => false,
    'files' => storage_path('framework/sessions'),
    'connection' => env('SESSION_CONNECTION', null),
    'table' => 'sessions',
    'store' => env('SESSION_STORE', null),
    'lottery' => [2, 100],
    'cookie' => env(
        'SESSION_COOKIE',
        Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
    ),
    'path' => '/',
    'domain' => env('SESSION_DOMAIN', null),
    'secure' => env('SESSION_SECURE_COOKIE'),
    'http_only' => true,

    'same_site' => 'lax',

];

আপনি ফাইলে পরিবেশ ভেরিয়েবল ব্যবহার করে সেশন কনফিগার করতে পারেন .env. উদাহরণস্বরূপ, ডাটাবেস সেশন ড্রাইভার ব্যবহার করতে এবং একটি সেশন টেবিলে সেশন ডেটা সংরক্ষণ করতে, MySQL- প্রকার DB এর সাথে, আপনি নিম্নলিখিত পরিবেশ ভেরিয়েবল সেট করতে পারেন:

SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions

লারাভেল সেশন সেটআপ

লারাভেলে সেশন ডেটা নিয়ে কাজ করার তিনটি উপায় রয়েছে: 

  • ব্যবহার করেhelper ডেলা global session;
  • অধিবেশন সম্মুখভাগ ব্যবহার করে;
  • একটি মাধ্যমে Request instance

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

উদ্ভাবন নিউজলেটার
উদ্ভাবনের সবচেয়ে গুরুত্বপূর্ণ খবর মিস করবেন না। ইমেল দ্বারা তাদের পেতে সাইন আপ করুন.

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

লারাভেলে, ফাংশন ব্যবহার করে Global Session Helper ফ্রেমওয়ার্ক দ্বারা প্রদত্ত সেশন পরিষেবাগুলি অ্যাক্সেস করার এটি একটি সুবিধাজনক উপায়। এটি আপনাকে আপনার অ্যাপ্লিকেশনের সেশন থেকে ডেটা সংরক্ষণ এবং পুনরুদ্ধার করতে দেয়। এখানে কিভাবে ব্যবহার করবেন তার একটি উদাহরণ session helper:

// Store data in the session
session(['key' => 'value']);

// Retrieve data from the session
$value = session('key');

// Remove data from the session
session()->forget('key');

// Clearing the Entire Session
session()->flush();

আপনি একটি প্রাক মান পাস করতে পারেনdefinite ফাংশনের দ্বিতীয় আর্গুমেন্ট হিসাবে session, যা সেশনে নির্দিষ্ট কী পাওয়া না গেলে ফেরত দেওয়া হবে:

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

উদাহরণস্বরুপ Session Request

লারাভেলে, একটি সেশন রিকোয়েস্ট ইনস্ট্যান্স এমন একটি বস্তুকে বোঝায় যা একটি HTTP অনুরোধের প্রতিনিধিত্ব করে এবং অনুরোধ সম্পর্কে তথ্য থাকে, যেমন অনুরোধের পদ্ধতি (GET, POST, PUT, ইত্যাদি), অনুরোধের URL, অনুরোধের শিরোনাম এবং অনুরোধের বডি। . এটিতে বিভিন্ন পদ্ধতি রয়েছে যা এই তথ্য পুনরুদ্ধার এবং ম্যানিপুলেট করতে ব্যবহার করা যেতে পারে।

সাধারণত আপনি দৃষ্টান্ত অ্যাক্সেস Session Request পরিবর্তনশীল মাধ্যমে $request একটি লারাভেল অ্যাপ্লিকেশনে। উদাহরণস্বরূপ, সাহায্যকারী ফাংশন ব্যবহার করে একটি অনুরোধের উদাহরণের মাধ্যমে একটি সেশন অ্যাক্সেস করা যেতে পারে session().

use Illuminate\Http\Request;

class ExampleController extends Controller
{
   public function example(Request $request)
   {
       // Store data in the session using the put function
       $request->session()->put('key', 'value');

       // Retrieve data from the session using the get function
       $value = $request->session()->get('key');

       // Check if a value exists in the session using the has function:
       if ($request->session()->has('key')) {
           // The key exists in the session.
       }

       // To determine if a value exists in the session, even if its value is null:
       if ($request->session()->exists('users')) {
           // The value exists in the session.
       }

       // Remove data from the session using the forget function
       $request->session()->forget('key');
    }
}

এই উদাহরণে, পরিবর্তনশীল  $request এটি ক্লাসের একটি উদাহরণ Illuminate\Http\Request, যা বর্তমান HTTP অনুরোধের প্রতিনিধিত্ব করে। কাজ session অনুরোধের উদাহরণ ক্লাসের একটি উদাহরণ প্রদান করে Illuminate\Session\Store, যা সেশনের সাথে কাজ করার জন্য বিভিন্ন ফাংশন প্রদান করে।

Ercole Palmeri

উদ্ভাবন নিউজলেটার
উদ্ভাবনের সবচেয়ে গুরুত্বপূর্ণ খবর মিস করবেন না। ইমেল দ্বারা তাদের পেতে সাইন আপ করুন.

সাম্প্রতিক নিবন্ধ

ক্যাটানিয়া পলিক্লিনিকে অ্যাপল দর্শকের সাথে অগমেন্টেড রিয়েলিটিতে উদ্ভাবনী হস্তক্ষেপ

অ্যাপল ভিশন প্রো কমার্শিয়াল ভিউয়ার ব্যবহার করে ক্যাটানিয়া পলিক্লিনিকে একটি চক্ষুরোগ অপারেশন করা হয়েছিল...

3 মে 2024

শিশুদের জন্য রঙিন পৃষ্ঠাগুলির উপকারিতা - সব বয়সের জন্য একটি জাদু বিশ্ব

রঙের মাধ্যমে সূক্ষ্ম মোটর দক্ষতার বিকাশ শিশুদের লেখার মতো জটিল দক্ষতার জন্য প্রস্তুত করে। রঙ…

2 মে 2024

ভবিষ্যত এখানে: শিপিং শিল্প কীভাবে বৈশ্বিক অর্থনীতিতে বিপ্লব ঘটাচ্ছে

নৌ সেক্টর একটি সত্যিকারের বৈশ্বিক অর্থনৈতিক শক্তি, যা 150 বিলিয়ন বাজারের দিকে নেভিগেট করেছে...

1 মে 2024

প্রকাশকরা এবং OpenAI কৃত্রিম বুদ্ধিমত্তা দ্বারা প্রক্রিয়াকৃত তথ্যের প্রবাহ নিয়ন্ত্রণ করতে চুক্তি স্বাক্ষর করে

গত সোমবার, ফাইন্যান্সিয়াল টাইমস ওপেনএআই-এর সাথে একটি চুক্তি ঘোষণা করেছে। FT তার বিশ্বমানের সাংবাদিকতার লাইসেন্স দেয়...

30 এপ্রিল 2024

আপনার ভাষায় উদ্ভাবন পড়ুন

উদ্ভাবন নিউজলেটার
উদ্ভাবনের সবচেয়ে গুরুত্বপূর্ণ খবর মিস করবেন না। ইমেল দ্বারা তাদের পেতে সাইন আপ করুন.

আমাদের অনুসরণ