Articles

Ndezvipi zvikamu muLaravel, kugadzirisa uye kushandisa nemienzaniso

Laravel zvikamu zvinokutendera iwe kuchengetedza ruzivo, uye kuchinjanisa pakati pezvikumbiro muwebhu application yako. 

Iyo inzira iri nyore yekuramba data yemushandisi aripo. Ichi chidzidzo chinokupa izvo zvekutanga zvekushanda nezvikamu muLaravel.

Chii chinonzi Laravel session

MuLaravel, chikamu inzira yekuchengetedza ruzivo, kubata nemazvo zvikumbiro zvinoitwa nemushandisi. Kana mushandisi atanga chirongwa cheLaravel, chikamu chinotangwa otomatiki kumushandisi iyeye. Session data inochengetwa paserver uye cookie diki ine chiziviso chakasiyana inotumirwa kubrowser yemushandisi kuti uone chikamu.

Unogona kushandisa chikamu kuchengetedza data raunoda kushandisa pamapeji akawanda kana zvikumbiro. Semuenzaniso, unogona kushandisa chikamu chechokwadi chemushandisi kana kuchengetedza rumwe ruzivo rwaunoda kushandisa panguva yechikamu pane yako application.

Session kumisikidzwa muLaravel

Kuti ushandise zvikamu muLaravel, unofanira kutanga wazvigonesa mufaira config/session.php ye configuration. Mune iyi faira zvinokwanisika kuseta zvigadziriso zvimiro zvine chekuita nezvikamu. Semuenzaniso nguva yechikamu, mutyairi wekushandisa kuchengetedza data resesheni, uye nzvimbo yekuchengetera data resesheni. 

Iyo faira ine zvinotevera zvigadziriso sarudzo:
  • mutyairi: Inotsanangura mutyairi wepamberidefiyakagadzirira kushandisa. Laravel inotsigira akati wandei madhiraivha echikamu: faira, cookie, dhatabhesi, apc, memcached, redis, dynamodb, uye array;
  • hwose: Inotsanangura nhamba yemaminetsi umo chikamu chinofanira kutorwa sechinoshanda;
  • expire_on_close: Kana ikaiswa kuchokwadi, chikamu chinopera kana browser yemushandisi yakavharwa;
  • encrypt: chokwadi chinoreva kuti iyo dhizaini ichavharira data yesesheni isati yachengetwa;
  • mafaira: Kana mutyairi wefaira wefaira akashandiswa, iyi sarudzo inotsanangura nzvimbo yekuchengetedza faira;
  • kubatanidza: Kana mutyairi wesesheni yedatabase akashandiswa, iyi sarudzo inotsanangura iyo database yekubatanidza yekushandisa;
  • tafura: Kana mutyairi wesesheni yedatabase akashandiswa, iyi sarudzo inotsanangura tafura yedatabase yekushandisa kuchengetedza data yechikamu;
  • rotari: Ruzhinji rwehutsika hunoshandiswa kusarudza zvisina tsarukano chikamu ID cookie kukosha;
  • kudzayi: Sarudzo iyi inotsanangura zita rekuki iyo ichashandiswa kuchengetedza ID yechikamu. Iyo nzira, domain, yakachengeteka, http_only uye same_saiti sarudzo dzinoshandiswa kugadzirisa cookie marongero echikamu.

Pazasi pane muenzaniso wefaira sessions.php nechikamu chenguva 120 masekondi, kushandiswa kwemafaira akachengetwa mudhairekitori 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',

];

Iwe unogona zvakare kugadzirisa chikamu uchishandisa zvakatipoteredza zvinosiyana mufaira .env. Semuenzaniso, kushandisa mutyairi wesesheni yedhatabhesi uye chitoro chesesheni data mutafura yechikamu, ine MySQL-mhando DB, unogona kuseta anotevera nharaunda akasiyana:

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

Laravel session setup

Pane nzira nhatu dzekushanda nesesheni data muLaravel: 

  • kushandisa thehelper della global session;
  • uchishandisa Session facade;
  • kuburikidza a Request instance

Muzviitiko zvese izvi, iyo data yaunochengeta muchikamu inozowanikwa mune zvinotevera zvikumbiro zvakaitwa nemushandisi mumwechete kudzamara chikamu chapera kana kuparadzwa nemaoko.

Innovation newsletter
Usarasikirwa nenhau dzakanyanya kukosha dzekuvandudza. Nyora kuti uvagamuchire neemail.

Global Session Mubatsiri

MuLaravel, uchishandisa basa Global Session Helper inzira iri nyore yekuwana masevhisi esesheni anopihwa nehurongwa. Iyo inokutendera iwe kuchengetedza uye kudzoreredza data kubva muchikamu mune yako application. Heino muenzaniso wekuti ungashandisa sei 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();

Iwe unogona zvakare kupasa pre valuedefinite senharo yechipiri kuchiitiko session, iyo ichadzoserwa kana kiyi yataurwa ikasawanikwa muchikamu:

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

Muenzaniso we Session Request

MuLaravel, chiitiko chekukumbira chikamu chinoreva chinhu chinomiririra chikumbiro cheHTTP uye chine ruzivo nezve chikumbiro, senge nzira yekukumbira (GET, POST, PUT, nezvimwewo), yekukumbira URL, misoro yechikumbiro uye sangano rekukumbira. . Iyo ine zvakare nzira dzakasiyana siyana dzinogona kushandiswa kutora uye kushandura ruzivo urwu.

Kazhinji iwe unowana muenzaniso weiyo Session Request kuburikidza nekusiyana $request mune Laravel application. Semuenzaniso, chikamu chinogona kuwanikwa kuburikidza nekukumbira muenzaniso uchishandisa mubatsiri basa 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');
    }
}

Mumuenzaniso uyu, kusiyana  $request ndiwo muenzaniso wekirasi Illuminate\Http\Request, inomiririra chikumbiro chazvino cheHTTP. Basa racho session chikumbiro chiitiko chinodzosera chiitiko chekirasi Illuminate\Session\Store, iyo inopa mabasa akasiyana-siyana ekushanda nemusangano.

Ercole Palmeri

Innovation newsletter
Usarasikirwa nenhau dzakanyanya kukosha dzekuvandudza. Nyora kuti uvagamuchire neemail.

Zvinyorwa zvekare

Veeam inoratidzira yakanyatso tsigiro yerudzikinuro, kubva padziviriro kusvika pakupindura uye kupora

Coveware neVeeam icharamba ichipa cyber kubira chiitiko mhinduro masevhisi. Coveware ichapa forensics uye kugadzirisa kugona…

23 April 2024

Green uye Digital Revolution: Sei Predictive Maintenance iri Kushandura Oiri & Gasi Indasitiri

Kufanofungidzira kugadzirisa kuri kushandura chikamu cheoiri & gasi, nemaitiro matsva uye akasimba ekutarisira zvidyarwa.…

22 April 2024

UK antitrust regulator inosimudza BigTech alarm pamusoro peGenAI

Iyo UK CMA yakapa yambiro nezvemaitiro eBig Tech mumusika wehungwaru hwekugadzira. Ikoko…

18 April 2024

Casa Green: shanduko yesimba kune ramangwana rakagadzikana muItari

Chirevo che "Case Green", chakagadzirwa neEuropean Union kuti chiwedzere kushanda nesimba kwezvivakwa, chapedza hurongwa hwayo hwemutemo ne…

18 April 2024