Αποτελούν έναν εύκολο τρόπο διατήρησης δεδομένων για τον τρέχοντα χρήστη. Αυτό το σεμινάριο θα σας δώσει τα βασικά της εργασίας με συνεδρίες στο Laravel.
Στο Laravel, μια συνεδρία είναι ένας τρόπος αποθήκευσης πληροφοριών, για τον σωστό χειρισμό των αιτημάτων που υποβάλλονται από έναν χρήστη. Όταν ένας χρήστης ξεκινά μια εφαρμογή Laravel, ξεκινά αυτόματα μια περίοδος λειτουργίας για αυτόν τον χρήστη. Τα δεδομένα περιόδου σύνδεσης αποθηκεύονται στον διακομιστή και ένα μικρό cookie με μοναδικό αναγνωριστικό αποστέλλεται στο πρόγραμμα περιήγησης του χρήστη για την αναγνώριση της συνεδρίας.
Μπορείτε να χρησιμοποιήσετε τη συνεδρία για να αποθηκεύσετε δεδομένα που θέλετε να χρησιμοποιήσετε σε πολλές σελίδες ή αιτήματα. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε τη συνεδρία για έλεγχο ταυτότητας χρήστη ή να αποθηκεύσετε άλλες πληροφορίες που θέλετε να χρησιμοποιήσετε κατά τη διάρκεια της περιόδου λειτουργίας στην εφαρμογή σας.
Για να χρησιμοποιήσετε συνεδρίες στο 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
. Για παράδειγμα, για να χρησιμοποιήσετε το πρόγραμμα οδήγησης περιόδου λειτουργίας βάσης δεδομένων και να αποθηκεύσετε δεδομένα συνεδρίας σε έναν πίνακα συνεδρίας, με DB τύπου MySQL, μπορείτε να ορίσετε τις ακόλουθες μεταβλητές περιβάλλοντος:
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
Η ανάπτυξη λεπτών κινητικών δεξιοτήτων μέσω του χρωματισμού προετοιμάζει τα παιδιά για πιο σύνθετες δεξιότητες όπως η γραφή. Να χρωματίσω…
Ο ναυτικός τομέας είναι μια πραγματική παγκόσμια οικονομική δύναμη, η οποία έχει προσανατολιστεί προς μια αγορά 150 δισεκατομμυρίων...
Την περασμένη Δευτέρα, οι Financial Times ανακοίνωσαν συμφωνία με το OpenAI. Η FT αδειοδοτεί την παγκόσμιας κλάσης δημοσιογραφία της…
Εκατομμύρια άνθρωποι πληρώνουν για υπηρεσίες ροής, πληρώνοντας μηνιαίες συνδρομές. Είναι κοινή γνώμη ότι…