Դրանք ընթացիկ օգտագործողի համար տվյալների պահպանման հեշտ միջոց են: Այս ձեռնարկը ձեզ կտրամադրի Laravel-ում նիստերի հետ աշխատելու հիմունքները:
Laravel-ում նիստը տեղեկատվություն պահելու, օգտատիրոջ կողմից ներկայացված հարցումները ճիշտ մշակելու միջոց է: Երբ օգտատերը սկսում է Laravel հավելվածը, այդ օգտատիրոջ համար սեսիան ավտոմատ կերպով սկսվում է: Աշխատաշրջանի տվյալները պահվում են սերվերում, և եզակի նույնացուցիչով փոքրիկ թխուկ է ուղարկվում օգտատիրոջ զննարկիչին՝ նիստը նույնականացնելու համար:
Դուք կարող եք օգտագործել նստաշրջանը տվյալների պահպանման համար, որոնք ցանկանում եք օգտագործել բազմաթիվ էջերում կամ հարցումներում: Օրինակ, դուք կարող եք օգտագործել նիստը օգտատերերի նույնականացման համար կամ պահել այլ տեղեկություններ, որոնք ցանկանում եք օգտագործել նիստի ընթացքում ձեր հավելվածում:
Laravel-ում նիստերն օգտագործելու համար նախ պետք է դրանք միացնեք ֆայլում config/session.php
կոնֆիգուրացիայի: Այս ֆայլում հնարավոր է սահմանել սեսիաների հետ կապված կոնֆիգուրացիայի պարամետրեր։ Օրինակ՝ նստաշրջանի տեւողությունը, սեսիայի տվյալները պահելու համար օգտագործվող դրայվերը եւ նստաշրջանի տվյալների պահպանման վայրը:
Ստորև բերված է ֆայլի օրինակ 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 տիպի DB-ով կարող եք սահմանել հետևյալ միջավայրի փոփոխականները.
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Laravel-ում նստաշրջանի տվյալների հետ աշխատելու երեք եղանակ կա.
helper
- ից global session
;Request instance
. Այս բոլոր դեպքերում, տվյալները, որոնք դուք պահում եք նիստում, հասանելի կլինեն նույն օգտատիրոջ կողմից արված հետագա հարցումներում, մինչև նիստի ժամկետի ավարտը կամ ձեռքով չոչնչացվի:
Laravel-ում՝ օգտագործելով ֆունկցիան 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
Veeam-ի Coveware-ը կշարունակի տրամադրել կիբեր շորթման միջադեպերի արձագանքման ծառայություններ: Coveware-ը կառաջարկի դատաբժշկական և վերականգնման հնարավորություններ…
Կանխատեսելի սպասարկումը հեղափոխություն է անում նավթի և գազի ոլորտում՝ կայանի կառավարման նորարարական և ակտիվ մոտեցմամբ:…
Մեծ Բրիտանիայի CMA-ն նախազգուշացում է տարածել արհեստական ինտելեկտի շուկայում Big Tech-ի վարքագծի վերաբերյալ: Այնտեղ…
Շենքերի էներգաարդյունավետության բարձրացման նպատակով Եվրոպական միության կողմից ձևակերպված «Քեյս Գրին» հրամանագիրը իր օրենսդրական գործընթացն ավարտել է…