Artiklid

Mis on Laraveli seansid, konfigureerimine ja kasutamine koos näidetega

Laraveli seansid võimaldavad teil teavet salvestada ja seda oma veebirakenduses päringute vahel vahetada. 

Need on lihtne viis praeguse kasutaja andmete säilitamiseks. See õpetus annab teile Laraveli seanssidega töötamise põhitõed.

Mis on Laraveli seanss

Laravelis on seanss viis teabe salvestamiseks, kasutaja tehtud päringute korrektseks käsitlemiseks. Kui kasutaja käivitab Laraveli rakenduse, käivitatakse selle kasutaja jaoks automaatselt seanss. Seansiandmed salvestatakse serverisse ja kasutaja brauserisse saadetakse seansi tuvastamiseks väike unikaalse identifikaatoriga küpsis.

Seansi abil saate salvestada andmeid, mida soovite kasutada mitmel lehel või päringul. Näiteks võite kasutada seanssi kasutaja autentimiseks või salvestada muud teavet, mida soovite oma rakenduses seansi ajal kasutada.

Seansi konfiguratsioon Laravelis

Seansside kasutamiseks Laravelis peate need esmalt failis lubama config/session.php konfiguratsioonist. Selles failis on võimalik määrata seanssidega seotud konfiguratsiooniparameetreid. Näiteks seansi kestus, seansiandmete salvestamiseks kasutatav draiver ja seansiandmete salvestuskoht. 

Failil on järgmised konfiguratsioonisuvandid:
  • juht: määrab seansieelse draiveridefikasutamiseks valmis. Laravel toetab mitut seansi draiverit: fail, küpsis, andmebaas, apc, memcached, redis, dynamodb ja massiiv;
  • elu: määrab minutite arvu, mille jooksul seanss tuleb lugeda kehtivaks;
  • aeguma_sulgemise korral: kui see on seatud tõeseks, siis seanss aegub, kui kasutaja brauser suletakse;
  • krüptida: tõene tähendab, et raamistik krüpteerib seansi andmed enne nende salvestamist;
  • failid: kui kasutatakse failiseansi draiverit, määrab see suvand faili salvestuskoha;
  • ühendus: kui kasutatakse andmebaasi seansi draiverit, määrab see suvand kasutatava andmebaasiühenduse;
  • tabel: kui kasutatakse andmebaasi seansi draiverit, määrab see suvand andmebaasi tabeli, mida kasutatakse seansiandmete salvestamiseks;
  • loterii: väärtuste massiiv, mida kasutatakse seansi ID küpsise väärtuse juhuslikuks valimiseks;
  • küpsis: see valik määrab küpsise nime, mida kasutatakse seansi ID salvestamiseks. Seansi küpsiseseadete konfigureerimiseks kasutatakse valikuid Tee, domeen, turvaline, http_only ja same_site.

Allpool on näide failist sessions.php seansi kestusega 120 sekundit, kataloogi salvestatud failide kasutamine 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',

];

Seansi saate seadistada ka faili keskkonnamuutujate abil .env. Näiteks andmebaasi seansi draiveri kasutamiseks ja seansiandmete salvestamiseks seansitabelisse MySQL-tüüpi DB-ga saate määrata järgmised keskkonnamuutujad.

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

Laraveli seansi seadistamine

Laravelis on seansiandmetega töötamiseks kolm võimalust: 

  • kasutadeshelper kohta global session;
  • kasutades Sessioni fassaadi;
  • läbi a Request instance

Kõigil neil juhtudel on seansi ajal salvestatud andmed saadaval sama kasutaja hilisemates päringutes kuni seansi aegumiseni või käsitsi hävitamiseni.

Innovatsiooni uudiskiri
Ärge jätke ilma kõige olulisematest uuendustest. Registreeruge, et saada neid meili teel.

Globaalne seansi abimees

Laravelis funktsiooni kasutades Global Session Helper see on mugav viis raamistiku pakutavatele seansiteenustele juurde pääseda. See võimaldab teil oma rakenduses seansi andmeid salvestada ja hankida. Siin on näide selle kohta, kuidas kasutada 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();

Saate edastada ka eelväärtusedefinite funktsiooni teise argumendina session, mis tagastatakse, kui määratud võtit seansist ei leitud:

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

Näide Session Request

Laravelis viitab seansipäringu eksemplar objektile, mis esindab HTTP-päringut ja sisaldab teavet päringu kohta, nagu päringu meetod (GET, POST, PUT jne), päringu URL, päringu päised ja päringu keha . See sisaldab ka erinevaid meetodeid, mida saab selle teabe hankimiseks ja manipuleerimiseks kasutada.

Tavaliselt pääsete juurde eksemplarile Session Request muutuja kaudu $request Laraveli rakenduses. Näiteks pääseb seansile juurde päringu eksemplari kaudu, kasutades abifunktsiooni 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');
    }
}

Selles näites on muutuja  $request see on klassi näide Illuminate\Http\Request, mis esindab praegust HTTP-päringut. Funktsioon session päringu eksemplar tagastab klassi eksemplari Illuminate\Session\Store, mis pakub seansiga töötamiseks erinevaid funktsioone.

Ercole Palmeri

Innovatsiooni uudiskiri
Ärge jätke ilma kõige olulisematest uuendustest. Registreeruge, et saada neid meili teel.

Viimased artiklid

Veeam pakub lunavarale kõige põhjalikumat tuge alates kaitsest kuni reageerimise ja taastamiseni

Veeami Coveware jätkab küberväljapressimise juhtumitele reageerimise teenuste pakkumist. Coveware pakub kohtuekspertiisi ja heastamisvõimalusi…

Aprill 23 2024

Roheline ja digitaalne revolutsioon: kuidas ennustav hooldus muudab nafta- ja gaasitööstust

Ennustav hooldus muudab nafta- ja gaasisektori pöördeliseks uuendusliku ja ennetava lähenemisega tehaste juhtimisele.…

Aprill 22 2024

Ühendkuningriigi monopolivastane regulaator tõstab BigTechi häire GenAI pärast

Ühendkuningriigi CMA on väljastanud hoiatuse Big Techi käitumise kohta tehisintellekti turul. Seal…

Aprill 18 2024

Casa Green: energiarevolutsioon jätkusuutliku tuleviku nimel Itaalias

Euroopa Liidu poolt hoonete energiatõhususe suurendamiseks koostatud roheliste majade dekreet on lõpetanud oma seadusandliku protsessi…

Aprill 18 2024