تخفیف تابستانی سال ۱۳۹۹ تاپایان: پنجشنبه ۱۲ تیر ۱۳۹۹
بزن بریم فروشگاه

درس 19 - سشن ها در لاراول

آموزش session ها در فریمورک لاراول

آموزش سشن ها ( session ) در فریمورک لاراول

سشن ها در فریمورک لاراول برای ذخیره سازی اطلاعات مربوط به کاربران جهت بررسی دسترسی یوزر استفاده میشود.

فریمورک لاراول برای هندل کردن session ها از روش های مختلفی استفاده میکند از جمله file, cookie, apc, array, Memcached, Redis و database.

بصورت پیشفرض درایور file برای سشن ها در لاراول استفاده میشود چون سبک هستند.

تنظیمات سشن ها در فریمورک لاراول در فایل config/session.php قرار گرفته است. 

 

دسترسی به داده های session در فریمورک لاراول

برای دسترسی به session در فریمورک لاراول ، نیاز به یک instance از session نیاز داریم که از طریق درخواست HTTP قابل دسترسی است.

بعد از دریافت instance میتونیم از متود get استفاده کنیم که یک آرگومان ورودی هم میپذیره 

$value = $request->session()->get('key');

همچنین میتونیم از متود all برای دسترسی به تمام سشن ها بجای متود get استفاده کنیم.

 

ذخیره سازی داده های سشن ( session ) در فریمورک لاراول

شما میتوانید داده های سشن را در فریمورک لاراول ذخیره سازی کنید و این اتفاق با متود put قابل انجام است. این متود دو ورودی بعنوان آرگومان میپذیرد یکی نام و یکی مقدار آن سشن.

$request->session()->put('key', 'value');

 

حذف کردن داده های سشن ( session ) در فریمورک لاراول 

متود forget برای حذف کردن یک آیتم از درون سشن ها قابل استفاده است. این متود یک آرگومان بعنوان ورودی میگیره که کلید یا key اون داده در سشن است.

$request->session()->forget('key');

همچنین متودی هست به نام flush که تمام سشن ها را یکجا پاکسازی میکند.

از متود دیگری به نام pull استفاده میشود تا علاوه بر بازیابی داده های سشن سپس آنها را پاک کند.

این متود یک آرگومان بعنوان ورودی دریافت میکند که key اون داده در سشن هست. تفاوت اصلی بین متود های forget و pull در این است که متود forget بدون بازیابی مقدار یک داده در سشن آنرا پاک میکند ولی pull مقدار آنرا برمیگرداند و سپس حذف میکند.

مثال

قدم 1 - یک کنترلر جدید به نام SessionController بسازید . میتوانید این کنترلر را با دستور زیر بسازید.

php artisan make:controller SessionController --plain

قدم 2 - بعد از اجرای دستور باید نتیجه در ترمینال یا کامند پرومپ مثل تصویر زیر باشد.

آموزش session ها در فریمورک لاراول

قدم 3 - کد زیر را در مسیر app/Http/Controllers/SessionController.php کپی کنید.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class SessionController extends Controller {
   public function accessSessionData(Request $request) {
      if($request->session()->has('my_name'))
         echo $request->session()->get('my_name');
      else
         echo 'No data in the session';
   }
   public function storeSessionData(Request $request) {
      $request->session()->put('my_name','Virat Gandhi');
      echo "Data has been added to session";
   }
   public function deleteSessionData(Request $request) {
      $request->session()->forget('my_name');
      echo "Data has been removed from session.";
   }
}

قدم 4 - فایل route های لاراول خود را باز کنید و کد زیر را درون آن بنویسید.

Route::get('session/get','SessionController@accessSessionData');
Route::get('session/set','SessionController@storeSessionData');
Route::get('session/remove','SessionController@deleteSessionData');

قدم 5 - بعد از serve کردن لاراول به آدرس url زیر در مرورگر مراجعه کنید .

http://localhost:8000/session/set

قدم 6 - بعد از مراجعه به url چیزی که مشاهده میکنید باید مشابه تصویر زیر باشد.

آموزش کار با سشن ها در فریمورک Laravel
قدم 7 - برای دریافت داده های ذخیره شده در سشن حالا در مرورگر خود به ادرس زیر مراجعه کنید.
http://localhost:8000/session/get

قدم 8 - نتیجه در مرورگر باید مشابه تصویر زیر باشد.

آموزش کار با سشن ها در فریمورک لاراول

قدم 9 - برای پاک کردن سشن ها به آدرس url زیر مراجعه کنید.

http://localhost:8000/session/remove

قدم 10 - سپس سشن های فریمورک لاراول پاکسازی میشود و نتیجه باید مشابه تصویر زیر باشد.

پاکسازی سشن ها در لاراول

اتمام درس