Dè a th’ ann an seiseanan ann an Laravel, rèiteachadh agus cleachdadh le eisimpleirean
Leigidh seiseanan Laravel leat fiosrachadh a stòradh, agus iomlaid a dhèanamh eadar iarrtasan san tagradh lìn agad.
Tha seiseanan Laravel nan dòigh furasta air dàta a chumail a’ dol airson an neach-cleachdaidh gnàthach. Bheir an oideachadh seo bunait dhut airson a bhith ag obair le seiseanan ann an Laravel.
Ùine leughaidh tuairmseach: 5 minuti
Dè th’ ann an seisean Laravel
Ann an Laravel, tha seisean na dhòigh air fiosrachadh a stòradh, gus dèiligeadh gu ceart ri iarrtasan bho neach-cleachdaidh. Nuair a thòisicheas neach-cleachdaidh tagradh Laravel, thèid seisean a thòiseachadh gu fèin-ghluasadach airson an neach-cleachdaidh sin. Tha dàta an t-seisean air a stòradh air an fhrithealaiche agus thèid briosgaid bheag le aithnichear sònraichte a chuir gu brabhsair an neach-cleachdaidh gus an seisean aithneachadh.
Faodaidh tu seisean a chleachdadh gus dàta a stòradh a tha thu airson a chleachdadh thar iomadh duilleag no iarrtas. Mar eisimpleir, dh’ fhaodadh tu an seisean a chleachdadh airson dearbhadh luchd-cleachdaidh no fiosrachadh eile a stòradh a tha thu airson a chleachdadh tron t-seisean air an tagradh agad.
Suidheachadh seisean Laravel
Gus seiseanan ann an Laravel a chleachdadh, feumaidh tu an comas a chuir san fhaidhle an toiseach config/session.php
de rèiteachadh. Anns an fhaidhle seo tha e comasach crìochan rèiteachaidh a shuidheachadh co-cheangailte ri seiseanan. A leithid fad an t-seisein, an draibhear airson a chleachdadh airson dàta an t-seisein a stòradh, agus an àite stòraidh airson dàta an t-seisein.
Tha na roghainnean rèiteachaidh a leanas aig an fhaidhle:
- dràibhear: Sònraich an draibhear seisean bunaiteach a chleachdas tu. Bidh Laravel a’ toirt taic do ghrunn dhraibhearan seisean: faidhlichean, briosgaidean, stòr-dàta, apc, memcached, redis, dynamodb and array ;
- beatha: Sònraich an àireamh de gheàrr-chunntasan anns am feumar beachdachadh air an t-seisean dligheach;
- crìochnachadh_on_dùin: Ma thèid a shuidheachadh gu fìor, thig an seisean gu crìch nuair a bhios brabhsair a' chleachdaiche dùinte;
- Encrypt: tha fìor a' ciallachadh gun crioptaich am frèam dàta seisean mus tèid a stòradh;
- faidhlichean: Ma thèid an dràibhear seisean faidhle a chleachdadh, sònraichidh an roghainn seo an t-àite stòraidh faidhle;
- co-cheangailte: Ma thèid an dràibhear seisean a chleachdadh stòr-dàta, tha an roghainn seo a 'sònrachadh a' cheangail ris an stòr-dàta a chleachdadh;
- Clàr: Ma thèid an dràibhear seisean a chleachdadh stòr-dàta, tha an roghainn seo a 'sònrachadh clàr de stòr-dàta a chleachdadh airson dàta seisean a stòradh;
- crannchuir: Sreath de luachan air an cleachdadh gus luach briosgaid ID seisean a thaghadh air thuaiream;
- cookie: Tha an roghainn seo a' sònrachadh ainm a' bhriosgaid a thèid a chleachdadh gus ID an t-seisein a stòradh. Bithear a’ cleachdadh na roghainnean slighe, àrainn, tèarainte, http_only agus same_site gus na roghainnean briosgaid a rèiteachadh airson an t-seisein.
Gu h-ìosal tha eisimpleir de fhaidhle sessions.php
le fad seisean 120 diogan, cleachdadh fhaidhlichean a tha air an stòradh san eòlaire 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',
];
Faodaidh tu cuideachd an seisean a rèiteachadh a’ cleachdadh caochladairean àrainneachd san fhaidhle .env
. Mar eisimpleir, gus an dràibhear seisean a chleachdadh stòr-dàta agus stòraich dàta seisean ann an clàr seisean, le seòrsa MySQL DB, faodaidh tu na caochladairean àrainneachd a leanas a shuidheachadh:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
A 'stèidheachadh seisean Laravel
Tha trì dòighean ann a bhith ag obair le dàta seisean ann an Laravel:
- a' cleachdadh an
helper
dellaglobal session
; - a’ cleachdadh aghaidh an t-Seisein;
- tro a
Request instance
.
Anns na cùisean sin uile, bidh an dàta a bhios tu a’ stòradh san t-seisean ri fhaighinn ann an iarrtasan às deidh sin a nì an aon neach-cleachdaidh gus an tig an seisean gu crìch no gus an tèid a sgrios le làimh.
Neach-cuideachaidh Seisean Cruinneil
Ann an Laravel, a 'cleachdadh a' ghnìomh Global Session Helper
tha e na dhòigh goireasach faighinn gu na seirbheisean seisean a tha am frèam a’ toirt seachad. Leigidh e leat dàta a stòradh agus fhaighinn air ais bhon t-seisean san tagradh agad. Seo eisimpleir de mar a chleachdas tu am faidhle 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();
Faodaidh tu cuideachd luach bunaiteach a thoirt seachad mar an dàrna argamaid don ghnìomh session
, a thèid a thilleadh mura lorgar an iuchair ainmichte san t-seisean:
$value = session('key', 'default');
Mar eisimpleir Session Request
Ann an Laravel, tha eisimpleir iarrtas seisean a’ toirt iomradh air nì a tha a’ riochdachadh iarrtas HTTP agus anns a bheil fiosrachadh mun iarrtas, leithid an dòigh tagraidh (GET, POST, PUT, msaa), URL iarraidh, cinn-cinn an iarrtais agus a’ bhuidheann iarrtais. . Tha grunn dhòighean ann cuideachd a dh'fhaodar a chleachdadh gus am fiosrachadh seo fhaighinn air ais agus a làimhseachadh.
Mar as trice gheibh thu cothrom air eisimpleir an Session Request
tron chaochladair $request
ann an tagradh Laravel. Mar eisimpleir, faodar faighinn gu seisean tro eisimpleir iarrtas a’ cleachdadh gnìomh an neach-cuideachaidh 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');
}
}
Anns an eisimpleir seo, an caochlaideach $request
tha e na eisimpleir den chlas Illuminate\Http\Request
, a tha a’ riochdachadh an iarrtas HTTP gnàthach. An gnìomh session
iarrtas eisimpleir a’ tilleadh eisimpleir den chlas Illuminate\Session\Store
, a bheir seachad diofar dhleastanasan airson a bhith ag obair leis an t-seisean.
Leughaidhean Co-cheangailte
Ercole Palmeri