Greinar

Hvað eru lotur í Laravel, stillingar og notkun með dæmum

Laravel lotur gera þér kleift að geyma upplýsingar og skiptast á þeim á milli beiðna í vefforritinu þínu. 

Þau eru auðveld leið til að viðhalda gögnum fyrir núverandi notanda. Þessi kennsla mun gefa þér grunnatriði þess að vinna með lotur í Laravel.

Hvað er Laravel fundur

Í Laravel er fundur leið til að geyma upplýsingar, til að meðhöndla beiðnir sem notandi gerir rétt. Þegar notandi ræsir Laravel forrit er fundur sjálfkrafa ræstur fyrir þann notanda. Fundargögn eru geymd á þjóninum og lítil kex með einstöku auðkenni er send í vafra notandans til að auðkenna lotuna.

Þú getur notað lotu til að geyma gögn sem þú vilt nota á mörgum síðum eða beiðnum. Til dæmis gætirðu notað lotuna til notendaauðkenningar eða geymt aðrar upplýsingar sem þú vilt nota á meðan á lotunni stendur í forritinu þínu.

Setningarstillingar í Laravel

Til að nota lotur í Laravel verður þú fyrst að virkja þær í skránni config/session.php af uppsetningu. Í þessari skrá er hægt að stilla stillingarbreytur sem tengjast lotum. Til dæmis lengd lotunnar, bílstjórinn sem á að nota til að geyma lotugögnin og geymslustað fyrir lotugögnin. 

Skráin hefur eftirfarandi stillingarvalkosti:
  • bílstjóri: Tilgreinir ökumann fyrir pre sessiondefitilbúinn til notkunar. Laravel styður nokkra setu rekla: skrá, kex, gagnagrunn, apc, memcached, redis, dynamodb og fylki;
  • ævi: Tilgreinir fjölda mínútna þar sem þingið verður að teljast gilt;
  • renna_við_loka: Ef stillt er á satt mun lotan renna út þegar vafra notandans er lokað;
  • Dulkóða: satt þýðir að ramminn mun dulkóða lotugögn áður en þau eru geymd;
  • skrár: Ef skráarlotubílstjórinn er notaður, tilgreinir þessi valkostur geymslustað skrárinnar;
  • tengingu: Ef gagnagrunnslotubílstjórinn er notaður, tilgreinir þessi valkostur gagnagrunnstenginguna sem á að nota;
  • borð: Ef gagnagrunnslotubílstjórinn er notaður, tilgreinir þessi valkostur gagnagrunnstöfluna sem á að nota til að geyma lotugögn;
  • happdrætti: Fylgi gilda sem notuð eru til að velja af handahófi kökugildi lotuauðkennis;
  • kex: Þessi valkostur tilgreinir nafn kökunnar sem verður notað til að geyma lotuauðkennið. Slóð, lén, örugg, http_only og same_site valkostir eru notaðir til að stilla vafrakökustillingarnar fyrir lotuna.

Hér að neðan er dæmi um skrá sessions.php með lotulengd 120 sekúndur, notkun skráa sem geymdar eru í möppunni 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',

];

Þú getur líka stillt lotuna með því að nota umhverfisbreytur í skránni .env. Til dæmis, til að nota gagnagrunnslotubílstjórann og geyma lotugögn í lotutöflu, með MySQL-gerð DB, geturðu stillt eftirfarandi umhverfisbreytur:

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

Laravel setuuppsetning

Það eru þrjár leiðir til að vinna með lotugögn í Laravel: 

  • með því að notahelper á global session;
  • með því að nota Session framhliðina;
  • í gegnum a Request instance

Í öllum þessum tilfellum verða gögnin sem þú geymir í lotunni tiltæk í síðari beiðnum frá sama notanda þar til lotan rennur út eða er eytt handvirkt.

Nýsköpunarfréttabréf
Ekki missa af mikilvægustu fréttunum um nýsköpun. Skráðu þig til að fá þau með tölvupósti.

Global Session Helper

Í Laravel, með því að nota aðgerðina Global Session Helper það er þægileg leið til að fá aðgang að lotuþjónustunni sem ramman býður upp á. Það gerir þér kleift að geyma og sækja gögn úr lotunni í forritinu þínu. Hér er dæmi um hvernig á að nota 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();

Þú getur líka staðist fyrirfram gildidefinite sem önnur rök fallsins session, sem verður skilað ef tilgreindur lykill finnst ekki í lotunni:

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

Dæmi um Session Request

Í Laravel vísar lotubeiðni til hluts sem táknar HTTP beiðni og inniheldur upplýsingar um beiðnina, svo sem beiðniaðferðina (GET, POST, PUT, osfrv.), slóð beiðninnar, hausar beiðninnar og meginmál beiðninnar. . Það inniheldur einnig ýmsar aðferðir sem hægt er að nota til að sækja og vinna með þessar upplýsingar.

Venjulega hefurðu aðgang að tilvikinu á Session Request í gegnum breytuna $request í Laravel forriti. Til dæmis er hægt að nálgast lotu í gegnum beiðnitilvik með því að nota hjálparaðgerðina 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');
    }
}

Í þessu dæmi er breytan  $request það er dæmi um bekkinn Illuminate\Http\Request, sem táknar núverandi HTTP beiðni. Aðgerðin session beiðni tilvik skilar tilviki af bekknum Illuminate\Session\Store, sem veitir ýmsar aðgerðir til að vinna með lotuna.

Ercole Palmeri

Nýsköpunarfréttabréf
Ekki missa af mikilvægustu fréttunum um nýsköpun. Skráðu þig til að fá þau með tölvupósti.

Nýlegar greinar

Útgefendur og OpenAI skrifa undir samninga um að stjórna flæði upplýsinga sem unnið er með gervigreind

Síðasta mánudag tilkynnti Financial Times um samning við OpenAI. FT leyfir heimsklassa blaðamennsku…

30 Apríl 2024

Greiðslur á netinu: Hér er hvernig streymisþjónusta gerir þér kleift að borga að eilífu

Milljónir manna borga fyrir streymisþjónustu og greiða mánaðarlega áskriftargjöld. Það er almenn skoðun að þú…

29 Apríl 2024

Veeam býður upp á umfangsmesta stuðninginn fyrir lausnarhugbúnað, allt frá vernd til viðbragða og bata

Coveware frá Veeam mun halda áfram að veita viðbragðsþjónustu fyrir tölvukúgun. Coveware mun bjóða upp á réttar- og úrbótamöguleika ...

23 Apríl 2024

Græn og stafræn bylting: Hvernig forspárviðhald er að umbreyta olíu- og gasiðnaðinum

Forspárviðhald er að gjörbylta olíu- og gasgeiranum, með nýstárlegri og fyrirbyggjandi nálgun við verksmiðjustjórnun.…

22 Apríl 2024