makala

Ni vipindi gani katika Laravel, usanidi na utumie na mifano

Vipindi vya Laravel hukuruhusu kuhifadhi habari, na kubadilishana kati ya maombi katika programu yako ya wavuti. 

Wao ni njia rahisi ya kuendelea na data kwa mtumiaji wa sasa. Mafunzo haya yatakupa misingi ya kufanya kazi na vipindi katika Laravel.

Kikao cha Laravel ni nini

Katika Laravel, kipindi ni njia ya kuhifadhi habari, kushughulikia kwa usahihi maombi yaliyotolewa na mtumiaji. Mtumiaji anapoanzisha programu ya Laravel, kipindi huanzishwa kiotomatiki kwa mtumiaji huyo. Data ya kipindi huhifadhiwa kwenye seva na kidakuzi kidogo chenye kitambulisho cha kipekee hutumwa kwa kivinjari cha mtumiaji ili kutambua kipindi.

Unaweza kutumia kipindi kuhifadhi data ambayo ungependa kutumia kwenye kurasa nyingi au maombi. Kwa mfano, unaweza kutumia kipindi kwa uthibitishaji wa mtumiaji au kuhifadhi maelezo mengine ambayo ungependa kutumia wakati wa kipindi kwenye programu yako.

Usanidi wa kikao katika Laravel

Ili kutumia vipindi katika Laravel, lazima kwanza uwashe kwenye faili config/session.php ya usanidi. Katika faili hii inawezekana kuweka vigezo vya usanidi kuhusiana na vikao. Kwa mfano muda wa kipindi, kiendeshi cha kutumia kuhifadhi data ya kipindi, na mahali pa kuhifadhi data ya kipindi. 

Faili ina chaguzi zifuatazo za usanidi:
  • dereva: Hubainisha kiendeshaji cha kipindi cha kabladefitayari kutumika. Laravel inasaidia viendeshaji vya vipindi kadhaa: faili, kidakuzi, hifadhidata, apc, memcached, redis, dynamodb, na safu;
  • maisha: Hubainisha idadi ya dakika ambazo kikao lazima kichukuliwe kuwa halali;
  • expire_on_close: Ikiwekwa kuwa ndivyo, kipindi kitaisha wakati kivinjari cha mtumiaji kitakapofungwa;
  • encrypt: true ina maana kwamba mfumo utasimba data ya kikao kabla ya kuhifadhiwa;
  • files: Ikiwa kiendesha kikao cha faili kinatumiwa, chaguo hili linabainisha eneo la kuhifadhi faili;
  • uhusiano: Ikiwa kiendesha kipindi cha hifadhidata kinatumiwa, chaguo hili linabainisha muunganisho wa hifadhidata wa kutumia;
  • meza: Ikiwa kiendesha kipindi cha hifadhidata kinatumiwa, chaguo hili linabainisha jedwali la hifadhidata la kutumia kuhifadhi data ya kipindi;
  • bahati nasibu: Mkusanyiko wa thamani zinazotumiwa kuchagua nasibu thamani ya kidakuzi cha kitambulisho cha kipindi;
  • cookie: Chaguo hili linabainisha jina la kidakuzi ambacho kitatumika kuhifadhi kitambulisho cha kipindi. Njia, kikoa, chaguo salama, http_only na same_site hutumika kusanidi mipangilio ya vidakuzi kwa kipindi.

Chini ni mfano wa faili sessions.php na muda wa kikao sekunde 120, matumizi ya faili zilizohifadhiwa kwenye saraka 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',

];

Unaweza pia kusanidi kikao kwa kutumia anuwai za mazingira kwenye faili .env. Kwa mfano, kutumia kiendesha kikao cha hifadhidata na kuhifadhi data ya kipindi katika jedwali la kikao, na DB ya aina ya MySQL, unaweza kuweka vijiumbe vifuatavyo vya mazingira:

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

Mpangilio wa kikao cha Laravel

Kuna njia tatu za kufanya kazi na data ya kikao katika Laravel: 

  • kwa kutumiahelper ya global session;
  • kwa kutumia facade ya Kikao;
  • kupitia a Request instance

Katika matukio haya yote, data utakayohifadhi kwenye kipindi itapatikana katika maombi yanayofuata yatakayotolewa na mtumiaji huyo huyo hadi kipindi kitakapoisha au kuharibiwa mwenyewe.

Jarida la uvumbuzi
Usikose habari muhimu zaidi kuhusu uvumbuzi. Jisajili ili kuzipokea kwa barua pepe.

Msaidizi wa Kikao cha Ulimwenguni

Katika Laravel, kwa kutumia kazi Global Session Helper ni njia rahisi ya kufikia huduma za kipindi zinazotolewa na mfumo. Inakuruhusu kuhifadhi na kurejesha data kutoka kwa kipindi katika programu yako. Hapa kuna mfano wa jinsi ya kutumia 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();

Unaweza pia kupitisha thamani ya awalidefinite kama hoja ya pili kwa chaguo la kukokotoa session, ambayo itarejeshwa ikiwa ufunguo uliobainishwa haupatikani kwenye kipindi:

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

Mfano wa Session Request

Katika Laravel, mfano wa ombi la kikao hurejelea kitu ambacho kinawakilisha ombi la HTTP na kina maelezo kuhusu ombi, kama vile njia ya ombi (GET, POST, PUT, n.k.), URL ya ombi, vichwa vya ombi na shirika la ombi. . Pia ina mbinu mbalimbali zinazoweza kutumika kurejesha na kuendesha taarifa hii.

Kwa kawaida unapata mfano wa Session Request kwa njia ya kutofautiana $request katika programu ya Laravel. Kwa mfano, kikao kinaweza kupatikana kupitia mfano wa ombi kwa kutumia kazi ya msaidizi 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');
    }
}

Katika mfano huu, kutofautiana  $request ni mfano wa darasa Illuminate\Http\Request, ambayo inawakilisha ombi la sasa la HTTP. Kitendaji session ombi mfano unarudisha mfano wa darasa Illuminate\Session\Store, ambayo hutoa kazi mbalimbali za kufanya kazi na kikao.

Ercole Palmeri

Jarida la uvumbuzi
Usikose habari muhimu zaidi kuhusu uvumbuzi. Jisajili ili kuzipokea kwa barua pepe.

Makala ya hivi karibuni

Wakati Ujao Upo Hapa: Jinsi Sekta ya Usafirishaji Inavyofanya Mapinduzi katika Uchumi wa Kimataifa

Sekta ya majini ni nguvu ya kweli ya kiuchumi duniani, ambayo imepitia kwenye soko la bilioni 150 ...

1 Mei 2024

Wachapishaji na OpenAI hutia saini mikataba ya kudhibiti mtiririko wa taarifa zinazochakatwa na Intelligence Artificial Intelligence

Jumatatu iliyopita, Financial Times ilitangaza makubaliano na OpenAI. FT inatoa leseni kwa uandishi wake wa habari wa kiwango cha kimataifa…

Aprili 30 2024

Malipo ya Mtandaoni: Hivi Ndivyo Huduma za Utiririshaji Hukufanya Ulipe Milele

Mamilioni ya watu hulipia huduma za utiririshaji, kulipa ada za usajili za kila mwezi. Ni maoni ya kawaida kwamba wewe…

Aprili 29 2024

Veeam inaangazia usaidizi wa kina zaidi wa ransomware, kutoka kwa ulinzi hadi majibu na uokoaji

Coveware by Veeam itaendelea kutoa huduma za kukabiliana na matukio ya ulaghai mtandaoni. Coveware itatoa uwezo wa uchunguzi na urekebishaji…

Aprili 23 2024