بضائع

ما هي الجلسات في Laravel ، الضبط والاستخدام مع الأمثلة

تتيح لك جلسات Laravel تخزين المعلومات وتبادلها بين الطلبات في تطبيق الويب الخاص بك. 

إنها طريقة سهلة لاستمرار البيانات للمستخدم الحالي. سيعطيك هذا البرنامج التعليمي أساسيات العمل مع الجلسات في Laravel.

ما هي جلسة Laravel

في Laravel ، الجلسة هي طريقة لتخزين المعلومات ، للتعامل بشكل صحيح مع الطلبات المقدمة من قبل المستخدم. عندما يبدأ المستخدم تطبيق Laravel ، تبدأ جلسة لهذا المستخدم تلقائيًا. يتم تخزين بيانات الجلسة على الخادم ويتم إرسال ملف تعريف ارتباط صغير بمعرف فريد إلى متصفح المستخدم لتحديد الجلسة.

يمكنك استخدام الجلسة لتخزين البيانات التي تريد استخدامها عبر صفحات أو طلبات متعددة. على سبيل المثال ، يمكنك استخدام الجلسة لمصادقة المستخدم أو تخزين المعلومات الأخرى التي تريد استخدامها أثناء الجلسة على التطبيق الخاص بك.

ضبط الجلسة في Laravel

لاستخدام الجلسات في Laravel ، يجب عليك أولاً تمكينها في الملف config/session.php من التكوين. في هذا الملف ، من الممكن تعيين معلمات التكوين المتعلقة بالجلسات. على سبيل المثال ، مدة الجلسة ، وبرنامج التشغيل المراد استخدامه لتخزين بيانات الجلسة ، وموقع التخزين لبيانات الجلسة. 

يحتوي الملف على خيارات التكوين التالية:
  • سائق: يحدد برنامج تشغيل ما قبل الجلسةdefiجاهز للإستخدام. يدعم Laravel العديد من برامج تشغيل الجلسة: الملف، وملفات تعريف الارتباط، وقاعدة البيانات، وapc، وmemcached، وredis، وdynamodb، والمصفوفة؛
  • أوقات الحياة: يحدد عدد الدقائق التي يجب اعتبار الجلسة فيها صالحة ؛
  • تنتهي_عند_إغلاق: إذا تم الضبط على "true" ، ستنتهي الجلسة عند إغلاق متصفح المستخدم ؛
  • تشفير: true تعني أن إطار العمل سوف يقوم بتشفير بيانات الجلسة قبل أن يتم تخزينها ؛
  • ملفات: إذا تم استخدام برنامج تشغيل جلسة الملف ، فإن هذا الخيار يحدد موقع تخزين الملفات ؛
  • صلة: إذا تم استخدام برنامج تشغيل جلسة قاعدة البيانات ، فإن هذا الخيار يحدد اتصال قاعدة البيانات المراد استخدامه ؛
  • جدول: إذا تم استخدام برنامج تشغيل جلسة قاعدة البيانات ، فإن هذا الخيار يحدد جدول قاعدة البيانات لاستخدامه لتخزين بيانات الجلسة ؛
  • اليانصيب: مجموعة من القيم المستخدمة لتحديد قيمة ملف تعريف ارتباط معرّف الجلسة بشكل عشوائي ؛
  • كوكي: يحدد هذا الخيار اسم ملف تعريف الارتباط الذي سيتم استخدامه لتخزين معرف الجلسة. يتم استخدام خيارات المسار والمجال والآمن و http_only ونفس الموقع لتكوين إعدادات ملفات تعريف الارتباط للجلسة.

يوجد أدناه مثال لملف 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

توجد ثلاث طرق للتعامل مع بيانات الجلسة في 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 اتفاقيات لتنظيم تدفق المعلومات التي تتم معالجتها بواسطة الذكاء الاصطناعي

أعلنت صحيفة فاينانشيال تايمز يوم الاثنين الماضي عن صفقة مع OpenAI. "فاينانشيال تايمز" ترخص صحافتها ذات المستوى العالمي...

أبريل 30 2024

المدفوعات عبر الإنترنت: إليك كيف تجعلك خدمات البث تدفع إلى الأبد

يدفع الملايين من الأشخاص مقابل خدمات البث، ويدفعون رسوم الاشتراك الشهرية. من الشائع أنك…

أبريل 29 2024

يتميز Veeam بالدعم الأكثر شمولاً لبرامج الفدية، بدءًا من الحماية وحتى الاستجابة والاسترداد

سوف تستمر شركة Coveware by Veeam في تقديم خدمات الاستجابة لحوادث الابتزاز السيبراني. ستوفر Coveware إمكانات الطب الشرعي والمعالجة...

أبريل 23 2024

الثورة الخضراء والرقمية: كيف تعمل الصيانة التنبؤية على تغيير صناعة النفط والغاز

تُحدث الصيانة التنبؤية ثورة في قطاع النفط والغاز، من خلال اتباع نهج مبتكر واستباقي لإدارة المحطات.

أبريل 22 2024

اقرأ الابتكار بلغتك

النشرة الإخبارية
لا تفوّت أهم أخبار الابتكار. قم بالتسجيل لتلقيهم عن طريق البريد الإلكتروني.

تابعنا