إنها طريقة سهلة لاستمرار البيانات للمستخدم الحالي. سيعطيك هذا البرنامج التعليمي أساسيات العمل مع الجلسات في Laravel.
في Laravel ، الجلسة هي طريقة لتخزين المعلومات ، للتعامل بشكل صحيح مع الطلبات المقدمة من قبل المستخدم. عندما يبدأ المستخدم تطبيق Laravel ، تبدأ جلسة لهذا المستخدم تلقائيًا. يتم تخزين بيانات الجلسة على الخادم ويتم إرسال ملف تعريف ارتباط صغير بمعرف فريد إلى متصفح المستخدم لتحديد الجلسة.
يمكنك استخدام الجلسة لتخزين البيانات التي تريد استخدامها عبر صفحات أو طلبات متعددة. على سبيل المثال ، يمكنك استخدام الجلسة لمصادقة المستخدم أو تخزين المعلومات الأخرى التي تريد استخدامها أثناء الجلسة على التطبيق الخاص بك.
لاستخدام الجلسات في Laravel ، يجب عليك أولاً تمكينها في الملف config/session.php
من التكوين. في هذا الملف ، من الممكن تعيين معلمات التكوين المتعلقة بالجلسات. على سبيل المثال ، مدة الجلسة ، وبرنامج التشغيل المراد استخدامه لتخزين بيانات الجلسة ، وموقع التخزين لبيانات الجلسة.
يوجد أدناه مثال لملف 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 ، يمكنك تعيين متغيرات البيئة التالية:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
توجد ثلاث طرق للتعامل مع بيانات الجلسة في Laravel:
helper
من global session
;Request instance
. في جميع هذه الحالات ، ستكون البيانات التي تخزنها في الجلسة متاحة في الطلبات اللاحقة التي قدمها نفس المستخدم حتى تنتهي صلاحية الجلسة أو يتم إتلافها يدويًا.
في Laravel ، باستخدام التابع 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
في Laravel ، يشير مثيل طلب الجلسة إلى كائن يمثل طلب HTTP ويحتوي على معلومات حول الطلب ، مثل طريقة الطلب (GET و POST و PUT وما إلى ذلك) وعنوان URL للطلب ورؤوس الطلب ونص الطلب . يحتوي أيضًا على طرق مختلفة يمكن استخدامها لاسترداد هذه المعلومات ومعالجتها.
عادةً ما تقوم بالوصول إلى مثيل Session Request
من خلال المتغير $request
في تطبيق Laravel. على سبيل المثال ، يمكن الوصول إلى جلسة من خلال نسخة طلب باستخدام وظيفة المساعد 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
أعلنت صحيفة فاينانشيال تايمز يوم الاثنين الماضي عن صفقة مع OpenAI. "فاينانشيال تايمز" ترخص صحافتها ذات المستوى العالمي...
يدفع الملايين من الأشخاص مقابل خدمات البث، ويدفعون رسوم الاشتراك الشهرية. من الشائع أنك…
سوف تستمر شركة Coveware by Veeam في تقديم خدمات الاستجابة لحوادث الابتزاز السيبراني. ستوفر Coveware إمكانات الطب الشرعي والمعالجة...
تُحدث الصيانة التنبؤية ثورة في قطاع النفط والغاز، من خلال اتباع نهج مبتكر واستباقي لإدارة المحطات.