amanqaku

Zithini iiseshoni eLaravel, uqwalaselo kunye nokusetyenziswa ngemizekelo

Iiseshoni zeLaravel zikuvumela ukuba ugcine ulwazi, kwaye ulutshintshe phakathi kwezicelo kwisicelo sakho sewebhu. 

Ziyindlela elula yokuqhubeka nedatha kumsebenzisi wangoku. Esi sifundo siya kukunika isiseko sokusebenza kunye neeseshini eLaravel.

Yintoni iseshoni yeLaravel

KwiLaravel, iseshoni yindlela yokugcina ulwazi, ukuphatha ngokufanelekileyo izicelo ezenziwe ngumsebenzisi. Xa umsebenzisi eqalisa usetyenziso lweLaravel, iseshoni iqalisa ngokuzenzekelayo loo msebenzisi. Idatha yeseshoni igcinwa kwiseva kwaye icookie encinci enesazisi esisodwa ithunyelwa kwisiphequluli somsebenzisi ukuchonga iseshoni.

Ungasebenzisa iseshoni ukugcina idatha ofuna ukuyisebenzisa kumaphepha amaninzi okanye izicelo. Umzekelo, ungasebenzisa iseshoni yokuqinisekisa umsebenzisi okanye ugcine olunye ulwazi ofuna ukulusebenzisa ngexesha leseshoni kwisicelo sakho.

Ukuseta iseshoni eLaravel

Ukusebenzisa iiseshini kwiLaravel, kufuneka uqale uzinike amandla kwifayile config/session.php yoqwalaselo. Kule fayile ungacwangcisa iiparameters zoqwalaselo ezinxulumene neeseshoni. Ngokomzekelo, ixesha leseshoni, umqhubi oza kusebenzisa ukugcina idatha yeseshoni, kunye nendawo yokugcina idatha yeseshoni. 

Ifayile inolu khetho lulandelayo loqwalaselo:
  • umqhubi: Ikhankanya umqhubi weseshoni yangaphambilidefiukulungele ukusetyenziswa. ILaravel ixhasa abaqhubi beeseshoni ezininzi: ifayile, icookie, idatabase, apc, memcached, redis, dynamodb, kunye noluhlu;
  • ubomi bonke: Ichaza inani lemizuzu ekufuneka iseshoni ithathwe njengesemthethweni;
  • expire_on_close: Ukuba imiselwe kwinyani, iseshoni iya kuphelelwa xa isikhangeli somsebenzisi sivaliwe;
  • kubhala: okuyinyaniso kuthetha ukuba isakhelo siya kuguqulela ngokuntsonkothileyo idatha yeseshoni phambi kokuba igcinwe;
  • iifayile: Ukuba umqhubi weseshoni yefayile uyasetyenziswa, olu khetho lukhankanya indawo yokugcina ifayile;
  • uqhagamshelwano: Ukuba umqhubi weseshoni yesiseko uyasetyenziswa, olu khetho lukhankanya uqhagamshelwano lwesiseko sedata omalusetyenziswe;
  • itafile: Ukuba umqhubi weseshoni yesiseko uyasetyenziswa, olu khetho lukhankanya itafile yedatha enokusetyenziswa ukugcina idatha yeseshoni;
  • lotto: Uluhlu lwamaxabiso asetyenziselwa ukukhetha ngokungakhethi iseshoni yexabiso le cookie ye-ID;
  • Cookie: Olu khetho luxela igama lekuki eza kusetyenziswa ukugcina i-ID yeseshoni. Indlela, idomeyini, ekhuselekileyo, http_only, kunye neenketho ezifanayo_zesayithi zisetyenziselwa ukuqwalasela useto lwekuki kwiseshoni.

Ngezantsi ngumzekelo wefayile sessions.php kunye nobude beseshoni ye-120 imizuzwana, ukusetyenziswa kweefayile ezigcinwe kuluhlu 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',

];

Ungaqwalasela kwakhona iseshoni usebenzisa iinguqu zemeko-bume kwifayile .env. Umzekelo, ukusebenzisa iseshoni yomqhubi wedatha kunye nedatha yeseshoni yogcino kwiseshini yetafile, kunye nohlobo lwe-MySQL ye-DB, unokuseta okuguquguqukayo okulandelayo:

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

Ukuseta iseshoni yeLaravel

Kukho iindlela ezintathu zokusebenza ngedatha yeseshoni eLaravel: 

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

Kuzo zonke ezi meko, idatha oyigcinayo kwiseshoni iya kufumaneka kwizicelo ezilandelayo ezenziwe ngumsebenzisi ofanayo de iseshoni iphelelwe okanye itshatyalaliswe ngesandla.

Ileta yeendaba entsha
Ungaphoswa zezona ndaba zibalulekileyo kutshintsho. Bhalisa ukuze uzifumane nge-imeyile.

UMncedi weSeshini yeHlabathi

KwiLaravel, usebenzisa umsebenzi Global Session Helper yindlela efanelekileyo yokufikelela kwiinkonzo zeseshoni ezibonelelwa ngesakhelo. Ikuvumela ukuba ugcine kwaye ufumane idatha kwiseshini kwisicelo sakho. Nanku umzekelo wendlela 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();

Unako kwakhona ukudlula ixabiso langaphambilidefiifakwe njengengxoxo yesibini kumsebenzi session, eya kubuyiselwa ukuba iqhosha elikhankanyiweyo alifunyanwanga kwiseshoni:

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

Umzekelo we Session Request

Kwi-Laravel, umzekelo wesicelo seseshoni ubhekiselele kwinto emele isicelo se-HTTP kwaye iqulethe ulwazi malunga nesicelo, njengendlela yokucela (i-GET, i-POST, i-PUT, njl.), i-URL yesicelo, izihloko zesicelo kunye nomzimba wesicelo. . Kananjalo iqulethe iindlela ezahlukeneyo ezinokusetyenziswa ukufumana kwakhona kunye nokukhohlisa olu lwazi.

Ngokwesiqhelo ufikelela kumzekelo we Session Request ngokuguquguquka $request kwisicelo seLaravel. Umzekelo, unokufikelela kwiseshoni ngomzekelo wesicelo usebenzisa umsebenzi womncedisi 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');
    }
}

Kulo mzekelo, ukuguquguquka  $request ngumzekelo weklasi Illuminate\Http\Request, emele isicelo sangoku seHTTP. Umsebenzi session kumzekelo wesicelo ubuyisela umzekelo weklasi Illuminate\Session\Store, ebonelela ngemisebenzi eyahlukeneyo yokusebenza kunye neseshoni.

Ercole Palmeri

Ileta yeendaba entsha
Ungaphoswa zezona ndaba zibalulekileyo kutshintsho. Bhalisa ukuze uzifumane nge-imeyile.

Amanqaku amva

Izibonelelo zamaphepha okufaka imibala kuBantwana-ihlabathi lomlingo kuyo yonke iminyaka

Ukuphuhlisa izakhono zemoto ngokufaka imibala kulungiselela abantwana izakhono ezinzima ezifana nokubhala. Ukufaka umbala...

2 Meyi 2024

Ikamva lilapha: Njani iShishini lokuThumela liTshintsha uQoqosho lweHlabathi

Icandelo lomkhosi wasemanzini ligunya lokwenyani loqoqosho lwehlabathi, elithe lajonga kwimarike ye-150 yeebhiliyoni...

1 Meyi 2024

Abapapashi kunye ne-OpenAI batyikitya izivumelwano zokulawula ukuhamba kolwazi oluqhutywe yiArtificial Intelligence

NgoMvulo ophelileyo, i-Financial Times ibhengeze isivumelwano kunye ne-OpenAI. I-FT ikhupha iilayisensi kubuntatheli bayo obukumgangatho wehlabathi…

30 Aprili 2024

Iintlawulo ze-Intanethi: Nantsi indlela Iinkonzo zokusasaza ezikwenza ukuba uHlawule ngonaphakade

Izigidi zabantu zihlawula iinkonzo zokusasaza, zihlawula umrhumo wenyanga. Luluvo oluqhelekileyo ukuba…

29 Aprili 2024