سشن ها در فریمورک لاراول برای ذخیره سازی اطلاعات مربوط به کاربران جهت بررسی دسترسی یوزر استفاده میشود.
فریمورک لاراول برای هندل کردن session ها از روش های مختلفی استفاده میکند از جمله file, cookie, apc, array, Memcached, Redis و database.
بصورت پیشفرض درایور file برای سشن ها در لاراول استفاده میشود چون سبک هستند.
تنظیمات سشن ها در فریمورک لاراول در فایل config/session.php قرار گرفته است.
برای دسترسی به session در فریمورک لاراول ، نیاز به یک instance از session نیاز داریم که از طریق درخواست HTTP قابل دسترسی است.
بعد از دریافت instance میتونیم از متود get استفاده کنیم که یک آرگومان ورودی هم میپذیره
$value = $request->session()->get('key');
همچنین میتونیم از متود all برای دسترسی به تمام سشن ها بجای متود get استفاده کنیم.
شما میتوانید داده های سشن را در فریمورک لاراول ذخیره سازی کنید و این اتفاق با متود put قابل انجام است. این متود دو ورودی بعنوان آرگومان میپذیرد یکی نام و یکی مقدار آن سشن.
$request->session()->put('key', 'value');
متود forget برای حذف کردن یک آیتم از درون سشن ها قابل استفاده است. این متود یک آرگومان بعنوان ورودی میگیره که کلید یا key اون داده در سشن است.
$request->session()->forget('key');
همچنین متودی هست به نام flush که تمام سشن ها را یکجا پاکسازی میکند.
از متود دیگری به نام pull استفاده میشود تا علاوه بر بازیابی داده های سشن سپس آنها را پاک کند.
این متود یک آرگومان بعنوان ورودی دریافت میکند که key اون داده در سشن هست. تفاوت اصلی بین متود های forget و pull در این است که متود forget بدون بازیابی مقدار یک داده در سشن آنرا پاک میکند ولی pull مقدار آنرا برمیگرداند و سپس حذف میکند.
مثال
قدم 1 - یک کنترلر جدید به نام SessionController بسازید . میتوانید این کنترلر را با دستور زیر بسازید.
php artisan make:controller SessionController --plain
قدم 2 - بعد از اجرای دستور باید نتیجه در ترمینال یا کامند پرومپ مثل تصویر زیر باشد.
قدم 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 چیزی که مشاهده میکنید باید مشابه تصویر زیر باشد.
http://localhost:8000/session/get
قدم 8 - نتیجه در مرورگر باید مشابه تصویر زیر باشد.
قدم 9 - برای پاک کردن سشن ها به آدرس url زیر مراجعه کنید.
http://localhost:8000/session/remove
قدم 10 - سپس سشن های فریمورک لاراول پاکسازی میشود و نتیجه باید مشابه تصویر زیر باشد.
اتمام درس
محصولات برگزیده مناسب شما
دوره ی آموزش کامل فریمورک لاراول Laravel دوره پروژه محور ساخت فروشگاه بامیلو با لاراول کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel دوره ی آموزش ویوجی اس ( Vuejs 3) پروژه محور به همراه Nuxt js