Артиколи

Laravel сеанстары дегеніміз не, конфигурациялау және мысалдармен пайдалану

Laravel сеанстары ақпаратты сақтауға және оны веб-қосымшаңыздағы сұраулар арасында алмасуға мүмкіндік береді. 

Олар ағымдағы пайдаланушы үшін деректерді сақтаудың оңай жолы. Бұл оқулық сізге Ларавелдегі сеанстармен жұмыс істеу негіздерін береді.

Laravel сеансы дегеніміз не

Laravel-те сеанс ақпаратты сақтаудың, пайдаланушы жасаған сұрауларды дұрыс өңдеудің тәсілі болып табылады. Пайдаланушы Laravel қолданбасын іске қосқанда, сол пайдаланушы үшін сеанс автоматты түрде басталады. Сеанс деректері серверде сақталады және сеансты анықтау үшін пайдаланушы браузеріне бірегей идентификаторы бар шағын cookie файлы жіберіледі.

Бірнеше беттерде немесе сұрауларда пайдаланғыңыз келетін деректерді сақтау үшін сеансты пайдалануға болады. Мысалы, пайдаланушының аутентификациясы үшін сеансты пайдалана аласыз немесе сеанс кезінде қолданбаңызда пайдаланғыңыз келетін басқа ақпаратты сақтай аласыз.

Laravel ішіндегі сеанс конфигурациясы

Laravel бағдарламасында сеанстарды пайдалану үшін алдымен оларды файлда қосу керек config/session.php конфигурациясының. Бұл файлда сеанстарға қатысты конфигурация параметрлерін орнатуға болады. Мысалы, сеанс ұзақтығы, сеанс деректерін сақтау үшін пайдаланылатын драйвер және сеанс деректерінің сақтау орны. 

Файлда келесі конфигурация опциялары бар:
  • жүргізуші: сеанс алдындағы драйверді көрсетедіdefiпайдалануға дайын. Laravel бірнеше сеанс драйверлерін қолдайды: файл, cookie, дерекқор, apc, memcached, redis, dynamodb және массив;
  • өмір кезеңі: сессия жарамды деп есептелуі тиіс минуттар санын көрсетеді;
  • мерзімі_жабу: «true» мәніне орнатылса, пайдаланушы браузері жабылған кезде сеанс аяқталады;
  • шифрлау: true рамка сеанс деректерін сақталмас бұрын шифрлайтынын білдіреді;
  • файлдар: файл сеансының драйвері пайдаланылса, бұл опция файлды сақтау орнын көрсетеді;
  • байланыс: Дерекқор сеансының драйвері пайдаланылса, бұл опция пайдаланылатын дерекқор қосылымын көрсетеді;
  • үстел: Егер дерекқор сеансы драйвері пайдаланылса, бұл опция сеанс деректерін сақтау үшін пайдаланылатын дерекқор кестесін көрсетеді;
  • лотерея: сеанс идентификаторы куки мәнін кездейсоқ таңдау үшін пайдаланылатын мәндер жиымы;
  • куки: Бұл опция сеанс идентификаторын сақтау үшін пайдаланылатын cookie файлының атын көрсетеді. Жол, домен, қауіпсіз, http_only және same_site опциялары сеанс үшін cookie файлдарының параметрлерін конфигурациялау үшін пайдаланылады.

Төменде файлдың мысалы берілген sessions.php сеанс ұзақтығы 120 секунд, каталогта сақталған файлдарды пайдалану 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',

];

Сондай-ақ файлдағы орта айнымалы мәндерін пайдаланып сеансты конфигурациялауға болады .env. Мысалы, MySQL типті ДҚ көмегімен дерекқор сеансының драйверін пайдалану және сеанс деректерін сеанс кестесінде сақтау үшін келесі орта айнымалы мәндерін орнатуға болады:

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

Laravel сеансын орнату

Laravel бағдарламасында сеанс деректерімен жұмыс істеудің үш жолы бар: 

  • пайдалана отырыпhelper della global session;
  • Session қасбеті арқылы;
  • арқылы а Request instance

Осы жағдайлардың барлығында сеанста сақтаған деректер сеанс мерзімі біткенше немесе қолмен жойылмайынша сол пайдаланушы жасаған кейінгі сұрауларда қолжетімді болады.

Инновациялық ақпараттық бюллетень
Инновация туралы ең маңызды жаңалықтарды жіберіп алмаңыз. Оларды электрондық пошта арқылы алу үшін тіркеліңіз.

Жаһандық сеанс көмекшісі

Ларавелде функцияны пайдалану Global Session Helper бұл фреймворк ұсынған сеанс қызметтеріне қол жеткізудің ыңғайлы жолы. Ол қолданбаңыздағы сеанс деректерін сақтауға және алуға мүмкіндік береді. Мұнда пайдаланудың мысалы берілген 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();

Сондай-ақ алдын ала мәнді беруге боладыdefinite функциясының екінші аргументі ретінде session, егер көрсетілген кілт сеанста табылмаса қайтарылады:

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

данасы Session Request

Laravel бағдарламасында сеанс сұрауының данасы HTTP сұрауын білдіретін және сұрау әдісі (GET, POST, PUT және т.б.), сұраудың URL мекенжайы, сұрау тақырыптары және сұрау мәтіні сияқты сұрау туралы ақпаратты қамтитын нысанға сілтеме жасайды. . Ол сондай-ақ осы ақпаратты алу және өңдеу үшін қолданылатын әртүрлі әдістерді қамтиды.

Әдетте сіз данасына қол жеткізесіз Session Request айнымалы арқылы $request Laravel қосымшасында. Мысалы, сеансқа көмекші функциясын пайдаланып сұрау данасы арқылы қол жеткізуге болады 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');
    }
}

Бұл мысалда айнымалы  $request бұл сыныптың данасы Illuminate\Http\Request, ол ағымдағы HTTP сұрауын білдіреді. Функция session сұрау данасы сынып данасын қайтарады Illuminate\Session\Store, ол сеанспен жұмыс істеу үшін әртүрлі функцияларды қамтамасыз етеді.

Ercole Palmeri

Инновациялық ақпараттық бюллетень
Инновация туралы ең маңызды жаңалықтарды жіберіп алмаңыз. Оларды электрондық пошта арқылы алу үшін тіркеліңіз.

Соңғы мақалалар

Болашақ осында: кеме қатынасы саласы жаһандық экономиканы қалай өзгертеді

Әскери-теңіз секторы 150 миллиардтық нарыққа бет алған нағыз жаһандық экономикалық держава болып табылады...

1 Мамыр 2024

Баспагерлер мен OpenAI жасанды интеллект өңдейтін ақпарат ағынын реттеу үшін келісімдерге қол қояды.

Өткен дүйсенбіде Financial Times OpenAI-мен келісім туралы жариялады. FT өзінің әлемдік деңгейдегі журналистикасына лицензия береді…

30 Сәуір 2024

Онлайн төлемдер: Міне, ағынды қызметтер сізге мәңгілік төлем жасауға мүмкіндік береді

Миллиондаған адамдар ай сайынғы абоненттік төлемді төлей отырып, ағынды қызметтерге ақы төлейді. Жалпы пікір, сіз…

29 Сәуір 2024

Veeam қорғаныстан жауап беруге және қалпына келтіруге дейін төлемдік бағдарламалық құралға ең жан-жақты қолдау көрсетеді

Veeam ұсынған Coveware кибербопсалау оқиғаларына жауап беру қызметтерін көрсетуді жалғастырады. Coveware криминалистикалық және қалпына келтіру мүмкіндіктерін ұсынады ...

23 Сәуір 2024

Инновацияны өз тіліңізде оқыңыз

Инновациялық ақпараттық бюллетень
Инновация туралы ең маңызды жаңалықтарды жіберіп алмаңыз. Оларды электрондық пошта арқылы алу үшін тіркеліңіз.

Артымыздан