Məqalələr

Laravel-də seanslar nədir, konfiqurasiya və nümunələrlə istifadə

Laravel seansları sizə məlumatı saxlamağa və veb tətbiqinizdəki sorğular arasında mübadilə etməyə imkan verir. 

Onlar cari istifadəçi üçün məlumatları saxlamaq üçün asan bir yoldur. Bu dərslik sizə Laravel-də sessiyalarla işləməyin əsaslarını verəcəkdir.

Laravel sessiyası nədir

Laravel-də sessiya məlumatı saxlamaq, istifadəçi tərəfindən edilən sorğuları düzgün idarə etmək üsuludur. İstifadəçi Laravel proqramını işə saldıqda həmin istifadəçi üçün avtomatik olaraq sessiya başlayır. Sessiya məlumatları serverdə saxlanılır və sessiyanı müəyyən etmək üçün istifadəçinin brauzerinə unikal identifikatoru olan kiçik kuki göndərilir.

Birdən çox səhifə və ya sorğuda istifadə etmək istədiyiniz məlumatları saxlamaq üçün sessiyadan istifadə edə bilərsiniz. Məsələn, istifadəçinin autentifikasiyası üçün sessiyadan istifadə edə və ya seans zamanı istifadə etmək istədiyiniz digər məlumatları tətbiqinizdə saxlaya bilərsiniz.

Laravel-də sessiya konfiqurasiyası

Laravel-də seanslardan istifadə etmək üçün əvvəlcə onları faylda aktivləşdirməlisiniz config/session.php konfiqurasiya. Bu faylda seanslarla bağlı konfiqurasiya parametrlərini təyin etmək mümkündür. Məsələn, sessiyanın müddəti, sessiya məlumatlarını saxlamaq üçün istifadə ediləcək sürücü və sessiya məlumatı üçün saxlama yeri. 

Fayl aşağıdakı konfiqurasiya seçimlərinə malikdir:
  • sürücü: Seans öncəsi drayveri təyin edirdefiistifadəyə hazırdır. Laravel bir neçə seans drayverini dəstəkləyir: fayl, kuki, verilənlər bazası, apc, memcached, redis, dynamodb və massiv;
  • ömür: Sessiyanın etibarlı hesab edilməli olduğu dəqiqələrin sayını müəyyən edir;
  • bitmək_on_bağlamaq: Doğru olaraq təyin edilərsə, istifadəçinin brauzeri bağlandıqda sessiya başa çatacaq;
  • şifrelemek: doğru o deməkdir ki, çərçivə sessiya məlumatlarını saxlanmazdan əvvəl şifrələyəcək;
  • faylları: Əgər fayl sessiyasının sürücüsü istifadə olunursa, bu seçim faylın saxlanma yerini müəyyən edir;
  • əlaqə: Verilənlər bazası sessiyasının drayverindən istifadə edilərsə, bu seçim istifadə ediləcək verilənlər bazası bağlantısını təyin edir;
  • masa: Əgər verilənlər bazası sessiyasının sürücüsü istifadə olunursa, bu seçim sessiya məlumatlarını saxlamaq üçün istifadə ediləcək verilənlər bazası cədvəlini təyin edir;
  • uduşlu: Seans ID kuki dəyərini təsadüfi seçmək üçün istifadə edilən dəyərlər massivi;
  • qoğal: Bu seçim sessiya ID-ni saxlamaq üçün istifadə olunacaq kuki adını müəyyən edir. Sessiya üçün kuki parametrlərini konfiqurasiya etmək üçün yol, domen, təhlükəsiz, http_only və same_site seçimləri istifadə olunur.

Aşağıda bir fayl nümunəsidir sessions.php seans müddəti 120 saniyə, kataloqda saxlanılan faylların istifadəsi 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',

];

Siz həmçinin fayldakı mühit dəyişənlərindən istifadə edərək sessiyanı konfiqurasiya edə bilərsiniz .env. Məsələn, MySQL tipli DB ilə verilənlər bazası sessiyasının sürücüsündən istifadə etmək və sessiya məlumatlarını sessiya cədvəlində saxlamaq üçün siz aşağıdakı mühit dəyişənlərini təyin edə bilərsiniz:

SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions

Laravel sessiyasının qurulması

Laravel-də sessiya məlumatları ilə işləməyin üç yolu var: 

  • istifadə edərəkhelper of global session;
  • Session fasadından istifadə etməklə;
  • vasitəsilə a Request instance

Bütün bu hallarda, sessiyada saxladığınız məlumatlar sessiyanın müddəti bitənə və ya əl ilə məhv edilənə qədər eyni istifadəçi tərəfindən edilən sonrakı sorğularda əlçatan olacaq.

İnnovasiya bülleteni
Yeniliklərlə bağlı ən vacib xəbərləri qaçırmayın. Onları e-poçtla almaq üçün qeydiyyatdan keçin.

Qlobal Sessiya Köməkçisi

Laravel-də funksiyadan istifadə etməklə Global Session Helper çərçivə tərəfindən təmin edilən sessiya xidmətlərinə daxil olmaq üçün əlverişli bir yoldur. Bu, tətbiqinizdə sessiyadan məlumatları saxlamağa və əldə etməyə imkan verir. Budur necə istifadə etmək üçün bir nümunə 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();

Siz həmçinin ilkin dəyəri keçə bilərsinizdefifunksiyanın ikinci arqumenti kimi nite session, göstərilən açar sessiyada tapılmadıqda qaytarılacaq:

$value = session('key', 'default');

Nümunəsi Session Request

Laravel-də sessiya sorğusu nümunəsi HTTP sorğusunu təmsil edən və sorğu metodu (GET, POST, PUT və s.), sorğu URL-i, sorğunun başlıqları və sorğu orqanı kimi sorğu haqqında məlumatları ehtiva edən obyektə istinad edir. . O, həmçinin bu məlumatı əldə etmək və manipulyasiya etmək üçün istifadə edilə bilən müxtəlif üsulları ehtiva edir.

Adətən nümunəsinə daxil olursunuz Session Request dəyişən vasitəsilə $request Laravel proqramında. Məsələn, köməkçi funksiyadan istifadə edərək sorğu nümunəsi vasitəsilə sessiyaya daxil olmaq olar 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');
    }
}

Bu nümunədə dəyişən  $request sinfin bir nümunəsidir Illuminate\Http\Request, cari HTTP sorğusunu təmsil edir. Funksiya session sorğu nümunəsi sinfin nümunəsini qaytarır Illuminate\Session\Store, sessiya ilə işləmək üçün müxtəlif funksiyaları təmin edir.

Ercole Palmeri

İnnovasiya bülleteni
Yeniliklərlə bağlı ən vacib xəbərləri qaçırmayın. Onları e-poçtla almaq üçün qeydiyyatdan keçin.

Articoli recenti

Veeam müdafiədən tutmuş cavab və bərpaya qədər ransomware üçün ən əhatəli dəstəyi təqdim edir

Coveware by Veeam kiber qəsb hallarına cavab xidmətləri göstərməyə davam edəcək. Coveware məhkəmə və remediasiya imkanları təklif edəcək...

23 Aprel 2024

Yaşıl və Rəqəmsal İnqilab: Proqnozlaşdırılan Baxım Neft və Qaz Sənayesini necə çevirir?

Proqnozlaşdırılan texniki xidmət zavodun idarə edilməsinə innovativ və proaktiv yanaşma ilə neft və qaz sektorunda inqilab edir.…

22 Aprel 2024

Böyük Britaniyanın antiinhisar tənzimləyicisi GenAI üzərində BigTech həyəcanını qaldırır

Böyük Britaniyanın CMA süni intellekt bazarında Big Tech-in davranışı ilə bağlı xəbərdarlıq edib. Orada…

18 Aprel 2024

Casa Green: İtaliyada davamlı gələcək üçün enerji inqilabı

Avropa İttifaqı tərəfindən binaların enerji səmərəliliyini artırmaq üçün tərtib edilən "Yaşıl Evlər" Fərmanı qanunvericilik prosesini yekunlaşdırdı ...

18 Aprel 2024