Artikler

Hva er økter i Laravel, konfigurasjon og bruk med eksempler

Laravel-økter lar deg lagre informasjon og utveksle den mellom forespørsler i nettapplikasjonen din. 

De er en enkel måte å opprettholde data for gjeldende bruker. Denne opplæringen vil gi deg det grunnleggende om å jobbe med økter i Laravel.

Hva er Laravel-økt

I Laravel er en økt en måte å lagre informasjon på, for å korrekt håndtere forespørsler fra en bruker. Når en bruker starter en Laravel-applikasjon, startes en økt automatisk for den brukeren. Sesjonsdata lagres på serveren og en liten informasjonskapsel med en unik identifikator sendes til brukerens nettleser for å identifisere økten.

Du kan bruke økten til å lagre data du vil bruke på flere sider eller forespørsler. Du kan for eksempel bruke økten til brukerautentisering eller lagre annen informasjon som du vil bruke under økten i applikasjonen din.

Øktkonfigurasjon i Laravel

For å bruke økter i Laravel må du først aktivere dem i filen config/session.php av konfigurasjonen. I denne filen er det mulig å angi konfigurasjonsparametere relatert til økter. For eksempel varigheten av økten, driveren som skal brukes til å lagre øktdataene og lagringsstedet for øktdataene. 

Filen har følgende konfigurasjonsalternativer:
  • sjåfør: Spesifiserer førøktsdriverendefiklar til bruk. Laravel støtter flere øktdrivere: fil, informasjonskapsel, database, apc, memcached, redis, dynamodb og array;
  • livstid: Angir antall minutter som økten må anses som gyldig;
  • expire_on_close: Hvis satt til true, vil økten utløpe når brukerens nettleser lukkes;
  • kryptere: true betyr at rammeverket vil kryptere øktdata før det lagres;
  • filer: Hvis filøktsdriveren brukes, spesifiserer dette alternativet fillagringsplasseringen;
  • tilkobling: Hvis databasesesjonsdriveren brukes, spesifiserer dette alternativet databasetilkoblingen som skal brukes;
  • bord: Hvis databasesesjonsdriveren brukes, spesifiserer dette alternativet databasetabellen som skal brukes til å lagre øktdata;
  • lotteri: En rekke verdier som brukes til å velge en økt-ID-informasjonskapselverdi tilfeldig;
  • cookie: Dette alternativet spesifiserer navnet på informasjonskapselen som skal brukes til å lagre økt-IDen. Alternativene for bane, domene, sikker, http_only og same_site brukes til å konfigurere informasjonskapselinnstillingene for økten.

Nedenfor er et eksempel på en fil sessions.php med øktvarighet 120 sekunder, bruk av filer lagret i katalogen 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',

];

Du kan også konfigurere økten ved å bruke miljøvariabler i filen .env. For for eksempel å bruke databasesesjonsdriveren og lagre øktdata i en sesjonstabell, med MySQL-type DB, kan du angi følgende miljøvariabler:

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

Laravel økt oppsett

Det er tre måter å jobbe med øktdata på i Laravel: 

  • brukerhelper av global session;
  • ved hjelp av Session-fasaden;
  • gjennom a Request instance

I alle disse tilfellene vil dataene du lagrer i økten være tilgjengelige i påfølgende forespørsler fra samme bruker til økten utløper eller blir manuelt ødelagt.

Nyhetsbrev for innovasjon
Ikke gå glipp av de viktigste nyhetene om innovasjon. Registrer deg for å motta dem på e-post.

Global Session Helper

I Laravel, ved å bruke funksjonen Global Session Helper det er en praktisk måte å få tilgang til økttjenestene levert av rammeverket. Den lar deg lagre og hente data fra økten i applikasjonen din. Her er et eksempel på hvordan du bruker 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();

Du kan også sende en forhåndsverdidefinite som det andre argumentet til funksjonen session, som vil bli returnert hvis den angitte nøkkelen ikke finnes i økten:

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

Tilfelle av Session Request

I Laravel refererer en sesjonsforespørselsinstans til et objekt som representerer en HTTP-forespørsel og inneholder informasjon om forespørselen, for eksempel forespørselsmetoden (GET, POST, PUT, etc.), forespørsels-URL, overskrifter på forespørselen og forespørselsteksten . Den inneholder også ulike metoder som kan brukes til å hente og manipulere denne informasjonen.

Vanligvis får du tilgang til forekomsten av Session Request gjennom variabelen $request i en Laravel-applikasjon. For eksempel kan en sesjon nås gjennom en forespørselsforekomst ved å bruke hjelpefunksjonen 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');
    }
}

I dette eksemplet er variabelen  $request det er en forekomst av klassen Illuminate\Http\Request, som representerer gjeldende HTTP-forespørsel. Funksjonen session request instans returnerer en instans av klassen Illuminate\Session\Store, som gir ulike funksjoner for å jobbe med økten.

Ercole Palmeri

Nyhetsbrev for innovasjon
Ikke gå glipp av de viktigste nyhetene om innovasjon. Registrer deg for å motta dem på e-post.

Siste artikler

Fordelene med fargeleggingssider for barn - en verden av magi for alle aldre

Å utvikle finmotorikk gjennom fargelegging forbereder barna på mer komplekse ferdigheter som å skrive. Å farge…

2 mai 2024

Fremtiden er her: Hvordan shippingindustrien revolusjonerer den globale økonomien

Marinesektoren er en ekte global økonomisk makt, som har navigert mot et 150 milliarder marked...

1 mai 2024

Utgivere og OpenAI signerer avtaler for å regulere flyten av informasjon som behandles av kunstig intelligens

Sist mandag kunngjorde Financial Times en avtale med OpenAI. FT lisensierer sin journalistikk i verdensklasse...

30 april 2024

Nettbetalinger: Her er hvordan strømmetjenester får deg til å betale for alltid

Millioner av mennesker betaler for strømmetjenester og betaler månedlige abonnementsavgifter. Det er vanlig oppfatning at du...

29 april 2024