Artikuj

Çfarë janë sesionet në Laravel, konfigurimi dhe përdorimi me shembuj

Seancat Laravel ju lejojnë të ruani informacionin dhe t'i shkëmbeni ato midis kërkesave në aplikacionin tuaj në internet. 

Ato janë një mënyrë e thjeshtë për të ruajtur të dhënat për përdoruesin aktual. Ky tutorial do t'ju japë bazat e punës me sesionet në Laravel.

Çfarë është sesioni Laravel

Në Laravel, një seancë është një mënyrë për të ruajtur informacionin, për të trajtuar saktë kërkesat e bëra nga një përdorues. Kur një përdorues fillon një aplikacion Laravel, një sesion fillon automatikisht për atë përdorues. Të dhënat e sesionit ruhen në server dhe një cookie e vogël me një identifikues unik dërgohet në shfletuesin e përdoruesit për të identifikuar seancën.

Ju mund të përdorni sesionin për të ruajtur të dhënat që dëshironi të përdorni nëpër faqe ose kërkesa të shumta. Për shembull, mund të përdorni seancën për vërtetimin e përdoruesit ose të ruani informacione të tjera që dëshironi të përdorni gjatë seancës në aplikacionin tuaj.

Konfigurimi i sesionit në Laravel

Për të përdorur sesionet në Laravel, fillimisht duhet t'i aktivizoni ato në skedar config/session.php të konfigurimit. Në këtë skedar është e mundur të vendosni parametrat e konfigurimit që lidhen me sesionet. Të tilla si kohëzgjatja e seancës, drejtuesi që do të përdoret për ruajtjen e të dhënave të sesionit dhe vendndodhja e ruajtjes për të dhënat e sesionit. 

Skedari ka opsionet e mëposhtme të konfigurimit:
  • shofer: Specifikon drejtuesin para sesionitdefigati per perdorim. Laravel mbështet disa drejtues sesionesh: skedar, cookie, bazë të dhënash, apc, memcached, redis, dynamodb dhe grup;
  • jetë: Përcakton numrin e minutave në të cilat seanca duhet të konsiderohet e vlefshme;
  • skadon_në_mbyll: Nëse vendoset në true, sesioni do të skadojë kur shfletuesi i përdoruesit të mbyllet;
  • encrypt: e vërtetë do të thotë që korniza do të enkriptojë të dhënat e sesionit përpara se të ruhen;
  • fotografi: Nëse përdoret drejtuesi i sesionit të skedarëve, ky opsion specifikon vendndodhjen e ruajtjes së skedarit;
  • lidhje: Nëse përdoret drejtuesi i sesionit të bazës së të dhënave, ky opsion specifikon lidhjen e bazës së të dhënave për t'u përdorur;
  • tryezë: Nëse përdoret drejtuesi i sesionit të bazës së të dhënave, ky opsion specifikon tabelën e bazës së të dhënave që do të përdoret për të ruajtur të dhënat e sesionit;
  • lotari: Një grup vlerash të përdorura për të zgjedhur në mënyrë të rastësishme një vlerë të skedarit të ID-së së sesionit;
  • biskotë: Ky opsion specifikon emrin e cookie-t që do të përdoret për të ruajtur ID-në e sesionit. Opsionet e shtegut, domenit, të sigurt, http_only dhe same_site përdoren për të konfiguruar cilësimet e kukive për seancën.

Më poshtë është një shembull i një skedari sessions.php me kohëzgjatje sesioni 120 sekonda, përdorimi i skedarëve të ruajtur në drejtori 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',

];

Ju gjithashtu mund të konfiguroni seancën duke përdorur variablat e mjedisit në skedar .env. Për shembull, për të përdorur drejtuesin e sesionit të bazës së të dhënave dhe për të ruajtur të dhënat e sesionit në një tabelë sesioni, me DB të tipit MySQL, mund të vendosni variablat e mëposhtëm të mjedisit:

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

Konfigurimi i sesionit Laravel

Ekzistojnë tre mënyra për të punuar me të dhënat e sesionit në Laravel: 

  • duke perdorurhelper i global session;
  • duke përdorur fasadën e Sesionit;
  • përmes një Request instance

Në të gjitha këto raste, të dhënat që ruani në seancë do të jenë të disponueshme në kërkesat e mëvonshme të bëra nga i njëjti përdorues derisa seanca të skadojë ose të shkatërrohet manualisht.

Buletini i inovacionit
Mos humbisni lajmet më të rëndësishme mbi inovacionin. Regjistrohuni për t'i marrë ato me email.

Ndihmësi i Sesionit Global

Në Laravel, duke përdorur funksionin Global Session Helper është një mënyrë e përshtatshme për të hyrë në shërbimet e sesioneve të ofruara nga korniza. Kjo ju lejon të ruani dhe të merrni të dhëna nga sesioni në aplikacionin tuaj. Këtu është një shembull se si të përdorni 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();

Ju gjithashtu mund të kaloni një vlerë paraprakedefinite si argumenti i dytë i funksionit session, i cili do të kthehet nëse çelësi i specifikuar nuk gjendet në seancë:

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

Shembull i Session Request

Në Laravel, një shembull i kërkesës për sesion i referohet një objekti që përfaqëson një kërkesë HTTP dhe përmban informacione rreth kërkesës, të tilla si metoda e kërkesës (GET, POST, PUT, etj.), URL-ja e kërkesës, titujt e kërkesës dhe trupi i kërkesës . Ai gjithashtu përmban metoda të ndryshme që mund të përdoren për të tërhequr dhe manipuluar këtë informacion.

Zakonisht ju aksesoni shembullin e Session Request përmes ndryshores $request në një aplikacion Laravel. Për shembull, një sesion mund të aksesohet përmes një shembulli kërkese duke përdorur funksionin ndihmës 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');
    }
}

Në këtë shembull, ndryshorja  $request është një shembull i klasës Illuminate\Http\Request, e cila përfaqëson kërkesën aktuale HTTP. Funksioni session instanca e kërkesës kthen një shembull të klasës Illuminate\Session\Store, i cili ofron funksione të ndryshme për të punuar me sesionin.

Ercole Palmeri

Buletini i inovacionit
Mos humbisni lajmet më të rëndësishme mbi inovacionin. Regjistrohuni për t'i marrë ato me email.

Artikujt e fundit

Veeam përmban mbështetjen më të plotë për ransomware, nga mbrojtja te përgjigja dhe rikuperimi

Coveware nga Veeam do të vazhdojë të ofrojë shërbime të reagimit ndaj incidenteve të zhvatjes kibernetike. Coveware do të ofrojë aftësi mjeko-ligjore dhe riparimi…

23 Prill 2024

Revolucioni i gjelbër dhe dixhital: Si mirëmbajtja parashikuese po transformon industrinë e naftës dhe gazit

Mirëmbajtja parashikuese po revolucionon sektorin e naftës dhe gazit, me një qasje inovative dhe proaktive për menaxhimin e impiantit.…

22 Prill 2024

Rregullatori antitrust në Mbretërinë e Bashkuar ngre alarmin e BigTech mbi GenAI

CMA e Mbretërisë së Bashkuar ka lëshuar një paralajmërim për sjelljen e Big Tech në tregun e inteligjencës artificiale. Aty…

18 Prill 2024

Casa Green: revolucion energjetik për një të ardhme të qëndrueshme në Itali

Dekreti "Case Green", i formuluar nga Bashkimi Evropian për të rritur efiçencën energjetike të ndërtesave, ka përfunduar procesin e tij legjislativ me…

18 Prill 2024