Onlar cari istifadəçi üçün məlumatları saxlamaq üçün asan bir yoldur. Bu dərslik sizə Laravel-də sessiyalarla işləməyin əsaslarını verəcəkdir.
Laravel-də sessiya məlumatı saxlamaq, istifadəçi tərəfindən edilən sorğuları düzgün idarə etmək üsuludur. İstifadəçi Laravel proqramını işə saldıqda həmin istifadəçi üçün avtomatik olaraq sessiya başlayır. Sessiya məlumatları serverdə saxlanılır və sessiyanı müəyyən etmək üçün istifadəçinin brauzerinə unikal identifikatoru olan kiçik kuki göndərilir.
Birdən çox səhifə və ya sorğuda istifadə etmək istədiyiniz məlumatları saxlamaq üçün sessiyadan istifadə edə bilərsiniz. Məsələn, istifadəçinin autentifikasiyası üçün sessiyadan istifadə edə və ya seans zamanı istifadə etmək istədiyiniz digər məlumatları tətbiqinizdə saxlaya bilərsiniz.
Laravel-də seanslardan istifadə etmək üçün əvvəlcə onları faylda aktivləşdirməlisiniz config/session.php
konfiqurasiya. Bu faylda seanslarla bağlı konfiqurasiya parametrlərini təyin etmək mümkündür. Məsələn, sessiyanın müddəti, sessiya məlumatlarını saxlamaq üçün istifadə ediləcək sürücü və sessiya məlumatı üçün saxlama yeri.
Aşağıda bir fayl nümunəsidir sessions.php
seans müddəti 120 saniyə, kataloqda saxlanılan faylların istifadəsi 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',
];
Siz həmçinin fayldakı mühit dəyişənlərindən istifadə edərək sessiyanı konfiqurasiya edə bilərsiniz .env
. Məsələn, MySQL tipli DB ilə verilənlər bazası sessiyasının sürücüsündən istifadə etmək və sessiya məlumatlarını sessiya cədvəlində saxlamaq üçün siz aşağıdakı mühit dəyişənlərini təyin edə bilərsiniz:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Laravel-də sessiya məlumatları ilə işləməyin üç yolu var:
helper
of global session
;Request instance
. Bütün bu hallarda, sessiyada saxladığınız məlumatlar sessiyanın müddəti bitənə və ya əl ilə məhv edilənə qədər eyni istifadəçi tərəfindən edilən sonrakı sorğularda əlçatan olacaq.
Laravel-də funksiyadan istifadə etməklə Global Session Helper
çərçivə tərəfindən təmin edilən sessiya xidmətlərinə daxil olmaq üçün əlverişli bir yoldur. Bu, tətbiqinizdə sessiyadan məlumatları saxlamağa və əldə etməyə imkan verir. Budur necə istifadə etmək üçün bir nümunə 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();
Siz həmçinin ilkin dəyəri keçə bilərsinizdefifunksiyanın ikinci arqumenti kimi nite session
, göstərilən açar sessiyada tapılmadıqda qaytarılacaq:
$value = session('key', 'default');
Session Request
Laravel-də sessiya sorğusu nümunəsi HTTP sorğusunu təmsil edən və sorğu metodu (GET, POST, PUT və s.), sorğu URL-i, sorğunun başlıqları və sorğu orqanı kimi sorğu haqqında məlumatları ehtiva edən obyektə istinad edir. . O, həmçinin bu məlumatı əldə etmək və manipulyasiya etmək üçün istifadə edilə bilən müxtəlif üsulları ehtiva edir.
Adətən nümunəsinə daxil olursunuz Session Request
dəyişən vasitəsilə $request
Laravel proqramında. Məsələn, köməkçi funksiyadan istifadə edərək sorğu nümunəsi vasitəsilə sessiyaya daxil olmaq olar 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');
}
}
Bu nümunədə dəyişən $request
sinfin bir nümunəsidir Illuminate\Http\Request
, cari HTTP sorğusunu təmsil edir. Funksiya session
sorğu nümunəsi sinfin nümunəsini qaytarır Illuminate\Session\Store
, sessiya ilə işləmək üçün müxtəlif funksiyaları təmin edir.
Ercole Palmeri
Coveware by Veeam kiber qəsb hallarına cavab xidmətləri göstərməyə davam edəcək. Coveware məhkəmə və remediasiya imkanları təklif edəcək...
Proqnozlaşdırılan texniki xidmət zavodun idarə edilməsinə innovativ və proaktiv yanaşma ilə neft və qaz sektorunda inqilab edir.…
Böyük Britaniyanın CMA süni intellekt bazarında Big Tech-in davranışı ilə bağlı xəbərdarlıq edib. Orada…
Avropa İttifaqı tərəfindən binaların enerji səmərəliliyini artırmaq üçün tərtib edilən "Yaşıl Evlər" Fərmanı qanunvericilik prosesini yekunlaşdırdı ...