Izihloko

Ayini amaseshini kuLaravel, ukucushwa nokusetshenziswa ngezibonelo

Izikhathi zeLaravel zikuvumela ukuthi ugcine imininingwane, futhi uyishintshise phakathi kwezicelo kuhlelo lwakho lokusebenza lewebhu. 

Ziyindlela elula yokuphikelela ngedatha yomsebenzisi wamanje. Lesi sifundo sizokunikeza izisekelo zokusebenza namaseshini e-Laravel.

Iyini iseshini yeLaravel

Ku-Laravel, iseshini iyindlela yokugcina ulwazi, ukuphatha kahle izicelo ezenziwe ngumsebenzisi. Uma umsebenzisi eqala uhlelo lokusebenza lwe-Laravel, iseshini iqalwa ngokuzenzakalelayo kulowo msebenzisi. Idatha yeseshini igcinwa kuseva futhi ikhukhi elincane elinesikhombi esihlukile lithunyelwa esipheqululini somsebenzisi ukuze kukhonjwe isikhathi.

Ungasebenzisa iseshini ukugcina idatha ofuna ukuyisebenzisa kumakhasi amaningi noma izicelo. Isibonelo, ungasebenzisa isikhathi sokuqinisekisa umsebenzisi noma ugcine olunye ulwazi ofuna ukulusebenzisa phakathi neseshini kuhlelo lwakho lokusebenza.

Ukucushwa kweseshini ku-Laravel

Ukuze usebenzise izikhathi ku-Laravel, kufanele uqale uzinike amandla kufayela config/session.php yokumisa. Kuleli fayela kungenzeka ukusetha imingcele yokumisa ehlobene namaseshini. Njengobude besikhathi seseshini, umshayeli okufanele asetshenziselwe ukugcina idatha yeseshini, kanye nendawo yokugcina idatha yeseshini. 

Ifayela linezinketho zokucushwa ezilandelayo:
  • Umshayeli: Icacisa umshayeli weseshini yangaphambi kwesikhathidefiilungele ukusetshenziswa. I-Laravel isekela abashayeli beseshini abambalwa: ifayela, ikhukhi, isizindalwazi, i-apc, i-memcached, i-redis, i-dynamodb, ne-array;
  • lifetime: Icacisa inani lamaminithi lapho iseshini kufanele ithathwe njengevumelekile;
  • expire_on_close: Uma kusethelwe kuqiniso, isikhathi sizophelelwa yisikhathi lapho isiphequluli somsebenzisi sivaliwe;
  • ukubethela: iqiniso lisho ukuthi uhlaka luzobethela idatha yeseshini ngaphambi kokuthi lugcinwe;
  • amafayela: Uma kusetshenziswa umshayeli weseshini yefayela, le nketho icacisa indawo yokugcina ifayela;
  • Uxhumano: Uma umshayeli weseshini yedathabheyisi esetshenziswa, le nketho icacisa uxhumo lesizindalwazi okufanele lusetshenziswe;
  • ithebula: Uma kusetshenziswa umshayeli weseshini yesizindalwazi, le nketho icacisa ithebula lesizindalwazi elizosetshenziswa ukugcina idatha yeseshini;
  • I-lottery: Uhlu lwamanani asetshenziselwa ukukhetha ngokungahleliwe inani lekhukhi le-ID yeseshini;
  • Ikhukhi: Le nketho icacisa igama lekhukhi elizosetshenziswa ukugcina i-ID yeseshini. Indlela, isizinda, okuvikelekile, http_only kanye nezinketho ze-same_site zisetshenziselwa ukulungisa izilungiselelo zekhukhi yeseshini.

Ngezansi kunesibonelo sefayela sessions.php ngobude beseshini imizuzwana engu-120, ukusetshenziswa kwamafayela agcinwe ohlwini lwemibhalo 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',

];

Ungaphinda ulungiselele iseshini usebenzisa okuguquguqukayo kwemvelo kufayela .env. Isibonelo, ukusebenzisa umshayeli weseshini yesizindalwazi kanye nedatha yeseshini yokulondoloza kuthebula leseshini, ngohlobo lwe-MySQL yohlobo lwe-DB, ungasetha okuguquguqukayo kwemvelo okulandelayo:

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

Ukusethwa kweseshini ye-Laravel

Kunezindlela ezintathu zokusebenza ngedatha yeseshini eLaravel: 

  • usebenzisa ihelper della global session;
  • usebenzisa i-facade yeSeshini;
  • ngokusebenzisa a Request instance

Kuzo zonke lezi zimo, idatha oyigcina kuseshini izotholakala ezicelweni ezilandelayo ezenziwe ngumsebenzisi ofanayo kuze kube yilapho isikhathi siphelelwa yisikhathi noma sibhujiswa mathupha.

Innovation newsletter
Ungaphuthelwa yizindaba ezibaluleke kakhulu zokuqamba. Bhalisa ukuze uthole nge-imeyili.

Global Session Helper

Ku-Laravel, usebenzisa umsebenzi Global Session Helper kuyindlela elula yokufinyelela izinsiza zeseshini ezihlinzekwa wuhlaka. Ikuvumela ukuthi ugcine futhi ubuyise idatha kusuka kuseshini kuhlelo lwakho lokusebenza. Nasi isibonelo sendlela yokusebenzisa i- 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();

Ungaphinda udlule inani langaphambilidefinite njengempikiswano yesibili yomsebenzi session, ezobuyiswa uma ukhiye oshiwo ungatholakali kuseshini:

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

Isibonelo se Session Request

Ku-Laravel, isibonelo sesicelo seseshini sisho into emele isicelo se-HTTP futhi equkethe ulwazi mayelana nesicelo, njengendlela yokucela (GET, POST, PUT, njll.), i-URL yesicelo, izihloko zesicelo kanye nendikimba yesicelo. . Futhi iqukethe izindlela ezahlukahlukene ezingasetshenziswa ukubuyisa nokukhohlisa lolu lwazi.

Ngokuvamile ufinyelela isibonelo se- Session Request ngokusebenzisa okuguquguqukayo $request kuhlelo lokusebenza lweLaravel. Isibonelo, iseshini ingafinyelelwa ngesibonelo sesicelo kusetshenziswa umsebenzi womsizi 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');
    }
}

Kulesi sibonelo, i-variable  $request kuyisibonelo sekilasi Illuminate\Http\Request, emele isicelo samanje se-HTTP. Umsebenzi session isicelo sibuyisela isibonelo sekilasi Illuminate\Session\Store, ehlinzeka ngemisebenzi ehlukahlukene yokusebenza neseshini.

Ercole Palmeri

Innovation newsletter
Ungaphuthelwa yizindaba ezibaluleke kakhulu zokuqamba. Bhalisa ukuze uthole nge-imeyili.

Izihloko zakamuva

I-Veeam ifaka ukusekelwa okuphelele kakhulu kwe-ransomware, kusukela ekuvikelweni kuya ekuphenduleni nasekululameni

I-Coveware ye-Veeam izoqhubeka nokuhlinzeka ngezinsizakalo zokuphendula izigameko zokuntshontshwa kwe-inthanethi. I-Coveware izohlinzeka ngama-forensics kanye nekhono lokulungisa…

23 April 2024

Inguquko Eluhlaza Nedijithali: Indlela Ukugcinwa Okubikezelwayo Kuyiguqula Kanjani Imboni Kawoyela Negesi

Ukulungiswa okuqagelayo kuguqula umkhakha kawoyela negesi, ngendlela emisha nesebenzayo yokuphatha izitshalo.…

22 April 2024

Isilawuli se-antitrust sase-UK siphakamisa i-alamu ye-BigTech nge-GenAI

I-CMA yase-UK ikhiphe isexwayiso mayelana nokuziphatha kwe-Big Tech emakethe yezobunhloli bokwenziwa. Lapho…

18 April 2024

I-Casa Green: inguquko yamandla yekusasa elisimeme e-Italy

Isinqumo esithi "Case Green", esakhiwe yi-European Union ukuze kuthuthukiswe ukusebenza kahle kwamandla ezakhiwo, siphothule inqubo yaso yomthetho ngokuthi...

18 April 2024