با عرض سلام خدمت کاربران عزیز سایت پی وی لرن و کاربرانی که دوره کامل آموزش لاراول را دنبال می کنند، از آنجاکه نرم افزارهای مبتنی بر HTTP وضعیت اتصالها را نگاه نمیدارند. Session یا جلسه در لاراول به عنوان راه حلی برای نگه داری اطلاعات کاربران در بین درخواست ها است. لاراول امکانات زیادی برای استفاده در یک API شسته رفته و یکپارچه دارد. چون برنامه های وب، اطلاعات کاربر را ذخیره نمی کنند. Session در لاراول ، برای ذخیره اطلاعات کاربر، که از request ها به دست می آیند، استفاده می شود.
در ادامه مباحث فوق جهت آشنایی با مبحث Session در لاراول با ما همراه باشید.
Driver، جایی است که داده های Session در آنجا ذخیره می شوند. لاراول، driverهای مختلفی مانند File، Cookie، APC، Array، Memcached، Redis، و Database برای مدیریت و ذخیره ی داده های نشست (session) فراهم کرده است.
لاراول بطور پیش فرض از درایورِفایل (File Driver) استفاده می کند.
چون سبک است و کارایی لازم را برای عموم برنامه ها دارد.
ولی برای برنامههای تولید شده (production)، توصیه شده از درایور memcached یا redis استفاده کنید.
چون بازدهی بیشتر و کارایی بهینه تری دارد.
فایل پیکر بندی Session در لاراول در config/session.php قرار دارد.
برای دسترسی به داده های جلسه، ما به یک نمونه از جلسه نیاز داریم که می تواند از طریق درخواست HTTP قابل دسترسی باشد.
پس از گرفتن نمونه، می توانیم از روش () get استفاده کنیم که یک آرگومان “key” را برای دریافت داده های جلسه می گیرد.
1 | $value = $request->session()->get('key'); |
شما می توانید از روش () all برای دریافت تمام داده های جلسه به جای روش () get استفاده کنید.
داده ها را می توان در جلسه با استفاده از روش () put ذخیره کرد.
روش () put دو استدلال،“key”و “value” را می گیرد.
1 | $request->session()->put('key', 'value'); |
روش ()forget برای حذف یک مورد از جلسه استفاده می شود. این روش به عنوان آرگومان “key” خواهد شد.
1 | $request->session()->forget('key'); |
از روش ()flush به جای روش ()forget برای حذف تمام داده های جلسه استفاده کنید.
از روش ()pull برای بازیابی اطلاعات از جلسه استفاده کنید و پس از آن آن را حذف کنید.
روش () pull همچنین به عنوان آرگومان نیز کلید می گیرد.
تفاوت بین روش () forget و ()pull این است که روش () forget مقدار Session در لاراول را بر نمی گرداند و روش ()pull آن را بازگشت می کند و آن را از session حذف می کند.
مرحله ۱ : با اجرای دستور زیر، یک کنترلر را به نام SessionController ایجاد کنید.
1 | php artisan make:controller SessionController --plain |
مرحله ۲ : بعد از اجرای موفق، خروجی زیر را دریافت خواهید کرد.
مرحله ۳ : این کد را در فایل app/Http/Controllers/SessionController.php کنید.
app/Http/Controllers/SessionController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?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."; } } |
مرحله ۴ : خطوط زیر را در فایل app / Http / routes.php اضافه کنید.
app/Http/routes.php
1 2 3 | Route::get('session/get','SessionController@accessSessionData'); Route::get('session/set','SessionController@storeSessionData'); Route::get('session/remove','SessionController@deleteSessionData'); |
مرحله ۵ : برای تنظیم داده ها در جلسه از URL زیر دیدن کنید.
1 | http://localhost:8000/session/set |
مرحله ۶ : خروجی به صورت زیر نمایش داده می شود.
مرحله ۷ : برای دریافت اطلاعات از جلسه، از نشانی اینترنتی زیر دیدن کنید.
1 | http://localhost:8000/session/get |
مرحله ۸ : خروجی به صورت زیر نمایش داده می شود.
مرحله ۹ : برای حذف داده های جلسه از URL زیر دیدن کنید.
1 | http://localhost:8000/session/remove |
مرحله ۱۰ : شما یک پیام را مانند تصویر زیر خواهید دید.
نشست ها با فراهم آوردن امکان ذخیره ی اطلاعات کاربر در بین تمامی request ها و درخواست ها، راه حل کارامدی برای رفع این مشکل به حساب می آیند.
فایل تنظیمات session در آدرس config/session.php نگهداری می شود. توصیه می شود تمامی گزینه ها و آپشن های موجود در این فایل را کاملا بررسی کنید.