Članci

Šta su sesije u Laravelu, konfiguracija i upotreba sa primjerima

Laravel sesije vam omogućavaju da pohranjujete informacije i razmjenjujete ih između zahtjeva u vašoj web aplikaciji. 

Oni su jednostavan način za zadržavanje podataka za trenutnog korisnika. Ovaj vodič će vam dati osnove rada sa sesijama u Laravelu.

Šta je Laravel sesija

U Laravel-u, sesija je način za pohranjivanje informacija, za pravilno rukovanje zahtjevima korisnika. Kada korisnik pokrene Laravel aplikaciju, sesija se automatski pokreće za tog korisnika. Podaci o sesiji se pohranjuju na serveru i mali kolačić sa jedinstvenim identifikatorom se šalje korisnikovom pretraživaču da identifikuje sesiju.

Možete koristiti sesiju za pohranjivanje podataka koje želite koristiti na više stranica ili zahtjeva. Na primjer, možete koristiti sesiju za autentifikaciju korisnika ili pohraniti druge informacije koje želite koristiti tokom sesije u vašoj aplikaciji.

Konfiguracija sesije u Laravel-u

Da biste koristili sesije u Laravelu, prvo ih morate omogućiti u datoteci config/session.php konfiguracije. U ovoj datoteci moguće je postaviti konfiguracijske parametre vezane za sesije. Kao što je trajanje sesije, upravljački program koji treba koristiti za pohranjivanje podataka sesije i lokacija za pohranu podataka o sesiji. 

Datoteka ima sljedeće opcije konfiguracije:
  • Vozač: Određuje drajver pre sesijedefispreman za upotrebu. Laravel podržava nekoliko drajvera sesije: fajl, kolačić, baza podataka, apc, memcached, redis, dynamodb i niz;
  • život: Određuje broj minuta u kojima se sesija mora smatrati validnom;
  • expire_on_close: Ako je postavljeno na true, sesija će isteći kada se korisnik zatvori pretraživač;
  • šifriranje: true znači da će okvir šifrirati podatke sesije prije nego što se pohrane;
  • datoteke: Ako se koristi upravljački program sesije datoteka, ova opcija specificira lokaciju za skladištenje datoteke;
  • veza: Ako se koristi drajver sesije baze podataka, ova opcija specificira vezu baze podataka koju treba koristiti;
  • sto: Ako se koristi drajver sesije baze podataka, ova opcija specificira tablicu baze podataka koja će se koristiti za pohranjivanje podataka sesije;
  • lutrija: Niz vrijednosti koji se koristi za nasumični odabir vrijednosti kolačića ID-a sesije;
  • kolačić: Ova opcija specificira ime kolačića koji će se koristiti za pohranjivanje ID-a sesije. Opcije puta, domena, sigurna, http_only i ista_site se koriste za konfiguriranje postavki kolačića za sesiju.

Ispod je primjer datoteke sessions.php sa trajanjem sesije 120 sekundi, korištenje datoteka pohranjenih u direktoriju 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',

];

Također možete konfigurirati sesiju koristeći varijable okruženja u datoteci .env. Na primjer, da biste koristili drajver sesije baze podataka i pohranili podatke sesije u tablicu sesije, sa MySQL DB-om, možete postaviti sljedeće varijable okruženja:

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

Postavljanje Laravel sesije

Postoje tri načina rada sa podacima sesije u Laravelu: 

  • koristećihelper della global session;
  • koristeći fasadu Session;
  • kroz a Request instance

U svim ovim slučajevima, podaci koje pohranite u sesiji bit će dostupni u narednim zahtjevima istog korisnika sve dok sesija ne istekne ili se ručno ne unište.

Inovacijski bilten
Ne propustite najvažnije vijesti o inovacijama. Prijavite se da ih primate putem e-pošte.

Global Session Helper

U Laravelu, koristeći funkciju Global Session Helper to je zgodan način za pristup uslugama sesije koje pruža okvir. Omogućava vam pohranjivanje i preuzimanje podataka iz sesije u vašoj aplikaciji. Evo primjera kako koristiti 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();

Također možete proslijediti vrijednost unaprijeddefinited kao drugi argument funkcije session, koji će biti vraćen ako navedeni ključ nije pronađen u sesiji:

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

Instance of Session Request

U Laravelu, instanca zahtjeva za sesijom se odnosi na objekat koji predstavlja HTTP zahtjev i sadrži informacije o zahtjevu, kao što je metoda zahtjeva (GET, POST, PUT, itd.), URL zahtjeva, zaglavlja zahtjeva i tijelo zahtjeva . Takođe sadrži različite metode koje se mogu koristiti za pronalaženje i manipulaciju ovim informacijama.

Obično pristupate instanci Session Request kroz promenljivu $request u Laravel aplikaciji. Na primjer, sesiji se može pristupiti preko instance zahtjeva koristeći pomoćnu funkciju 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');
    }
}

U ovom primjeru, varijabla  $request to je instanca klase Illuminate\Http\Request, koji predstavlja trenutni HTTP zahtjev. Funkcija session request instance vraća instancu klase Illuminate\Session\Store, koji pruža različite funkcije za rad sa sesijom.

Ercole Palmeri

Inovacijski bilten
Ne propustite najvažnije vijesti o inovacijama. Prijavite se da ih primate putem e-pošte.

Nedavni članak

Googleova nova umjetna inteligencija može modelirati DNK, RNK i "sve molekule života"

Google DeepMind predstavlja poboljšanu verziju svog modela umjetne inteligencije. Novi poboljšani model pruža ne samo…

9 May 2024

Istraživanje Laravelove modularne arhitekture

Laravel, poznat po svojoj elegantnoj sintaksi i moćnim karakteristikama, takođe pruža solidnu osnovu za modularnu arhitekturu. Tamo…

9 May 2024

Cisco Hypershield i akvizicija Splunk-a Nova era sigurnosti počinje

Cisco i Splunk pomažu korisnicima da ubrzaju svoje putovanje do Centra za sigurnosne operacije (SOC) budućnosti sa…

8 May 2024

Izvan ekonomske strane: neočigledna cijena ransomware-a

Ransomware je dominirao vijestima posljednje dvije godine. Većina ljudi je svjesna da napadi…

6 May 2024

Inovativna intervencija u proširenoj stvarnosti, sa Apple gledateljem u Poliklinici Catania

Operacija oftalmoplastike komercijalnim preglednikom Apple Vision Pro obavljena je u Poliklinici Catania…

3 May 2024

Prednosti bojanki za djecu - svijet magije za sve uzraste

Razvijanje finih motoričkih sposobnosti kroz bojenje priprema djecu za složenije vještine poput pisanja. Za bojenje…

2 May 2024

Budućnost je tu: Kako brodarska industrija revolucionira globalnu ekonomiju

Pomorski sektor je prava globalna ekonomska sila, koja je krenula ka tržištu od 150 milijardi...

1 May 2024

Izdavači i OpenAI potpisuju ugovore za reguliranje protoka informacija koje obrađuje umjetna inteligencija

Prošlog ponedjeljka Financial Times je objavio dogovor sa OpenAI. FT licencira svoje novinarstvo svjetske klase…

30 april 2024