معرفی session در چارچوب برنامه نویسی لاراول


دستورات مرتبط با پیکربندی session برنامه در config/session.php ذخیره می شوند. به طور کلی لاراول برای استفاده از درایور session پیکربندی شده است و برای بسیاری از برنامه ها به خوبی کار می کند. پیکربندی درایور session تعیین می کند که داده های session برای هر درخواست در کجا ذخیره شوند. لاراول با چندین روش session ها را ذخیره می کند. مهمترین آنها شامل این موارد می باشند:
          ✓ فایل: می توان داده های session را در فایل ها و در قسمت storage ذخیره نمود. از طرفی رایج ترین راه ذخیره سازی داده های session همین راه است.
          ✓ کوکی: به طور پیش فرض session ها با این روش ذخیره می شوند. در کوکی های امن و رمزگذاری شده ذخیره می شوند.
          ✓ پایگاه داده: در این روش ذخیره سازی، session ها در یک پایگاه داده رابطه ای ذخیره می شوند.
          ✓ آرایه: در این روش session ها در یک آرایه PHP ذخیره می شوند. از این روش ذخیره سازی به دلیل ماهیت آن که عدم ذخیره داده ها برا ی مدت زمان طولانی است، زیاد استفاده نمی شود.

پایگاه داده
هنگام استفاده از پایگاه داده، می بایست در ابتدا جدولی حاوی رکوردهای session مانند تصویر ذیل ایجاد شود: همچنین می توان از دستورات Artisan برای ایجاد ایجاد مهاجرت استفاده کرد. در تصویر ذیل یک نمونه از دستورات مشابه آمده است که در آن session جدول در ابتدا معرفی و سپس جهت ایجاد جدول مرتبط آماده می شود:

فایل ها
این روش بهترین و رایج ترین روش برای استفاده از session ها در لاراول می باشد. برای این کار می بایست وارد پوشه config شده و فایل session را انتخاب کرد. سپس در آنجا تنظیمات driver را مطابق شکل زیر بر روی فایل قرار داد.

نحوه استفاده
برای استفاده از فایل در ذخیره سازی session ها، می بایست که ابتدا آنها ایجاد و سپس استفاده شوند. به عنوان مثال در این Controller، دو تابع وجود دارد که هرکدام مربوط به یک مسیر می باشند. در تابع put کاربر یک session را ایجاد می کند و با رفتن به صفحه دوم، می تواند آن را اخذ نماید. همینطور می تواند در ادامه کارهای مختلفی را بر روی آن به انجام برساند:

زی فریم

ابتدا در تابع page یک و با استفاده از متد put که دو مقدار نام و مقدار session را در خود دارد، session ایجاد می شود. همینطور تابع page دوم هم دارای متد get برای اخذ session است. می توان بجای متد put از متد flash هم استفاده کرد. با این تفاوت که در متد flash کاربر تنها یکبار می تواند در صفحه دوم session را مشاهده کند و به محض refresh مرورگر، session از بین خواهد رفت. به طور کلی هر session دارای دو بخش key و value می باشد که باهم تشکیل یک session را می دهند و در دو صورت هم نگارش می شوند:

زی فریم

در ادامه می توان متدهای مختلفی را در جهت استفاده از session فراخوانی کرد که به آن موارد پرداخته می شود. یکی از مهمترین توابع، تابع ذیل است که برای اخذ همه مقادیر session استفاده می شود.
$session = session()->all();
توابع ذیل دارای دو مقدار false و true بوده و برای عبارات شرطی کاربرد دارند. در این توابع مشخص می شود که مقدار قرار داده شده درون پرانتز در session قرار دارد یا خیر.
name = session()->has('name'); $name = session()->exists('name');
اگر کاربر بخواهد تنها یک پارامتر را در session حذف کند، از تابع forget استفاده می کند. اما اگر بخواهد کل session را پاک کند، از تابع flush استفاده می شود.
$session = session()->forget('name'); $session = session()->flush();
  
×