Erthyglau

Beth yw sesiynau yn Laravel, cyfluniad a defnydd gydag enghreifftiau

Mae sesiynau Laravel yn caniatáu ichi storio gwybodaeth, a'i chyfnewid rhwng ceisiadau yn eich rhaglen we. 

Maent yn ffordd hawdd o barhau â data ar gyfer y defnyddiwr presennol. Bydd y tiwtorial hwn yn rhoi'r pethau sylfaenol i chi o weithio gyda sesiynau yn Laravel.

Beth yw sesiwn Laravel

Yn Laravel, mae sesiwn yn ffordd o storio gwybodaeth, i drin ceisiadau a wneir gan ddefnyddiwr yn gywir. Pan fydd defnyddiwr yn cychwyn cais Laravel, mae sesiwn yn cael ei gychwyn yn awtomatig ar gyfer y defnyddiwr hwnnw. Mae data sesiwn yn cael ei storio ar y gweinydd ac anfonir cwci bach gyda dynodwr unigryw i borwr y defnyddiwr i adnabod y sesiwn.

Gallwch ddefnyddio sesiwn i storio data rydych chi am ei ddefnyddio ar draws sawl tudalen neu geisiadau. Er enghraifft, efallai y byddwch chi'n defnyddio'r sesiwn ar gyfer dilysu defnyddwyr neu'n storio gwybodaeth arall rydych chi am ei defnyddio yn ystod y sesiwn ar eich cais.

Cyfluniad sesiwn yn Laravel

I ddefnyddio sesiynau yn Laravel, yn gyntaf rhaid i chi eu galluogi yn y ffeil config/session.php o gyfluniad. Yn y ffeil hon mae'n bosibl gosod paramedrau cyfluniad sy'n gysylltiedig â sesiynau. Er enghraifft, hyd y sesiwn, y gyrrwr i'w ddefnyddio ar gyfer storio data'r sesiwn, a'r lleoliad storio ar gyfer data'r sesiwn. 

Mae gan y ffeil yr opsiynau ffurfweddu canlynol:
  • gyrrwr: Yn pennu'r gyrrwr cyn sesiwndefibarod i'w ddefnyddio. Mae Laravel yn cefnogi sawl gyrrwr sesiwn: ffeil, cwci, cronfa ddata, apc, memcached, redis, dynamodb, ac array;
  • oes: Yn pennu nifer y munudau y mae'n rhaid ystyried y sesiwn yn ddilys ynddynt;
  • dod i ben_ar_cau: Os yn wir, bydd y sesiwn yn dod i ben pan fydd porwr y defnyddiwr ar gau;
  • amgryptio: mae gwir yn golygu y bydd y fframwaith yn amgryptio data sesiwn cyn iddo gael ei storio;
  • ffeiliau: Os defnyddir y gyrrwr sesiwn ffeil, mae'r opsiwn hwn yn pennu lleoliad storio'r ffeil;
  • cysylltiad: Os defnyddir gyrrwr sesiwn y gronfa ddata, mae'r opsiwn hwn yn pennu'r cysylltiad cronfa ddata i'w ddefnyddio;
  • tabl: Os defnyddir gyrrwr sesiwn y gronfa ddata, mae'r opsiwn hwn yn pennu tabl y gronfa ddata i'w ddefnyddio i storio data sesiwn;
  • loteri: Amrywiaeth o werthoedd a ddefnyddir i ddewis gwerth cwci ID sesiwn ar hap;
  • cwci: Mae'r opsiwn hwn yn nodi enw'r cwci a ddefnyddir i storio ID y sesiwn. Defnyddir yr opsiynau llwybr, parth, diogel, http_yn unig a same_site i ffurfweddu gosodiadau cwci ar gyfer y sesiwn.

Isod mae enghraifft o ffeil sessions.php gyda hyd sesiwn 120 eiliad, defnyddio ffeiliau sydd wedi'u storio yn y cyfeiriadur 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',

];

Gallwch hefyd ffurfweddu'r sesiwn gan ddefnyddio newidynnau amgylchedd yn y ffeil .env. Er enghraifft, i ddefnyddio gyrrwr sesiwn y gronfa ddata a storio data sesiwn mewn tabl sesiwn, gyda DB math MySQL, gallwch osod y newidynnau amgylchedd canlynol:

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

Gosod sesiwn Laravel

Mae tair ffordd o weithio gyda data sesiwn yn Laravel: 

  • gan ddefnyddio'rhelper o global session;
  • defnyddio ffasâd y Sesiwn;
  • trwy a Request instance

Ym mhob un o'r achosion hyn, bydd y data rydych chi'n ei storio yn y sesiwn ar gael mewn ceisiadau dilynol a wneir gan yr un defnyddiwr nes bod y sesiwn yn dod i ben neu'n cael ei ddinistrio â llaw.

Cylchlythyr arloesi
Peidiwch â cholli'r newyddion pwysicaf am arloesi. Cofrestrwch i'w derbyn trwy e-bost.

Cynorthwyydd Sesiwn Fyd-eang

Yn Laravel, gan ddefnyddio'r swyddogaeth Global Session Helper mae'n ffordd gyfleus o gael mynediad at y gwasanaethau sesiwn a ddarperir gan y fframwaith. Mae'n caniatáu i chi storio ac adalw data o'r sesiwn yn eich cais. Dyma enghraifft o sut i ddefnyddio'r 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();

Gallwch hefyd basio rhagwerthdefinite fel yr ail ddadl i'r swyddogaeth session, a fydd yn cael ei ddychwelyd os na cheir yr allwedd a nodwyd yn y sesiwn:

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

Er enghraifft Session Request

Yn Laravel, mae enghraifft cais sesiwn yn cyfeirio at wrthrych sy'n cynrychioli cais HTTP ac sy'n cynnwys gwybodaeth am y cais, megis y dull cais (GET, POST, PUT, ac ati), URL cais, penawdau'r cais a'r corff cais . Mae hefyd yn cynnwys amrywiol ddulliau y gellir eu defnyddio i adalw a thrin y wybodaeth hon.

Yn nodweddiadol, rydych chi'n cyrchu enghraifft y Session Request trwy'r newidyn $request mewn cais Laravel. Er enghraifft, gellir cyrchu sesiwn trwy enghraifft cais gan ddefnyddio'r swyddogaeth helpwr 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');
    }
}

Yn yr enghraifft hon, y newidyn  $request engraifft o'r dosbarth ydyw Illuminate\Http\Request, sy'n cynrychioli'r cais HTTP cyfredol. Y swyddogaeth session cais enghraifft yn dychwelyd enghraifft o'r dosbarth Illuminate\Session\Store, sy'n darparu swyddogaethau amrywiol ar gyfer gweithio gyda'r sesiwn.

Ercole Palmeri

Cylchlythyr arloesi
Peidiwch â cholli'r newyddion pwysicaf am arloesi. Cofrestrwch i'w derbyn trwy e-bost.

Erthyglau Diweddar

Ymyrraeth arloesol mewn Realiti Estynedig, gyda gwyliwr Apple yn y Catania Polyclinic

Perfformiwyd gweithrediad offthalmoplasti gan ddefnyddio gwyliwr masnachol Apple Vision Pro yn y Catania Polyclinic…

3 Mai 2024

Manteision Tudalennau Lliwio i Blant - byd o hud a lledrith i bob oed

Mae datblygu sgiliau echddygol manwl trwy liwio yn paratoi plant ar gyfer sgiliau mwy cymhleth fel ysgrifennu. I liwio…

2 Mai 2024

Mae'r Dyfodol Yma: Sut Mae'r Diwydiant Llongau yn Chwyldro'r Economi Fyd-eang

Mae'r sector llyngesol yn bŵer economaidd byd-eang gwirioneddol, sydd wedi llywio tuag at farchnad 150 biliwn...

1 Mai 2024

Mae cyhoeddwyr ac OpenAI yn llofnodi cytundebau i reoleiddio'r llif gwybodaeth a brosesir gan Ddeallusrwydd Artiffisial

Ddydd Llun diwethaf, cyhoeddodd y Financial Times gytundeb ag OpenAI. Mae FT yn trwyddedu ei newyddiaduraeth o safon fyd-eang…

30 2024 Ebrill