εμπορεύματα

Τι είναι οι συνεδρίες στο Laravel, διαμόρφωση και χρήση με παραδείγματα

Οι συνεδρίες Laravel σάς επιτρέπουν να αποθηκεύετε πληροφορίες και να τις ανταλλάσσετε μεταξύ αιτημάτων στην εφαρμογή Ιστού σας. 

Αποτελούν έναν εύκολο τρόπο διατήρησης δεδομένων για τον τρέχοντα χρήστη. Αυτό το σεμινάριο θα σας δώσει τα βασικά της εργασίας με συνεδρίες στο Laravel.

Τι είναι η συνεδρία Laravel

Στο Laravel, μια συνεδρία είναι ένας τρόπος αποθήκευσης πληροφοριών, για τον σωστό χειρισμό των αιτημάτων που υποβάλλονται από έναν χρήστη. Όταν ένας χρήστης ξεκινά μια εφαρμογή Laravel, ξεκινά αυτόματα μια περίοδος λειτουργίας για αυτόν τον χρήστη. Τα δεδομένα περιόδου σύνδεσης αποθηκεύονται στον διακομιστή και ένα μικρό cookie με μοναδικό αναγνωριστικό αποστέλλεται στο πρόγραμμα περιήγησης του χρήστη για την αναγνώριση της συνεδρίας.

Μπορείτε να χρησιμοποιήσετε τη συνεδρία για να αποθηκεύσετε δεδομένα που θέλετε να χρησιμοποιήσετε σε πολλές σελίδες ή αιτήματα. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε τη συνεδρία για έλεγχο ταυτότητας χρήστη ή να αποθηκεύσετε άλλες πληροφορίες που θέλετε να χρησιμοποιήσετε κατά τη διάρκεια της περιόδου λειτουργίας στην εφαρμογή σας.

Διαμόρφωση συνεδρίας στο Laravel

Για να χρησιμοποιήσετε συνεδρίες στο Laravel, πρέπει πρώτα να τις ενεργοποιήσετε στο αρχείο config/session.php της διαμόρφωσης. Σε αυτό το αρχείο είναι δυνατό να ορίσετε παραμέτρους διαμόρφωσης που σχετίζονται με συνεδρίες. Όπως η διάρκεια της συνεδρίας, το πρόγραμμα οδήγησης που θα χρησιμοποιηθεί για την αποθήκευση των δεδομένων συνεδρίας και η θέση αποθήκευσης για τα δεδομένα περιόδου σύνδεσης. 

Το αρχείο έχει τις ακόλουθες επιλογές διαμόρφωσης:
  • οδηγός: Καθορίζει το πρόγραμμα οδήγησης πριν την περίοδο λειτουργίαςdefiέτοιμο για χρήση. Η Laravel υποστηρίζει πολλά προγράμματα οδήγησης περιόδου λειτουργίας: αρχείο, cookie, βάση δεδομένων, apc, memcached, redis, dynamodb και πίνακα.
  • Διάρκεια Ζωής: Καθορίζει τον αριθμό των λεπτών στα οποία η συνεδρία πρέπει να θεωρείται έγκυρη.
  • expire_on_close: Εάν οριστεί σε true, η περίοδος λειτουργίας θα λήξει όταν κλείσει το πρόγραμμα περιήγησης του χρήστη.
  • κρυπτογράφηση: true σημαίνει ότι το πλαίσιο θα κρυπτογραφήσει τα δεδομένα περιόδου σύνδεσης προτού αποθηκευτούν.
  • αρχεία: Εάν χρησιμοποιείται το πρόγραμμα οδήγησης περιόδου λειτουργίας αρχείου, αυτή η επιλογή καθορίζει τη θέση αποθήκευσης αρχείων.
  • σύνδεση: Εάν χρησιμοποιείται το πρόγραμμα οδήγησης περιόδου λειτουργίας βάσης δεδομένων, αυτή η επιλογή καθορίζει τη σύνδεση βάσης δεδομένων που θα χρησιμοποιηθεί.
  • τραπέζι: Εάν χρησιμοποιείται το πρόγραμμα οδήγησης περιόδου λειτουργίας βάσης δεδομένων, αυτή η επιλογή καθορίζει τον πίνακα βάσης δεδομένων που θα χρησιμοποιηθεί για την αποθήκευση δεδομένων συνεδρίας.
  • λαχείο: Ένας πίνακας τιμών που χρησιμοποιείται για την τυχαία επιλογή μιας τιμής cookie αναγνωριστικού περιόδου σύνδεσης.
  • κουλουράκι: Αυτή η επιλογή καθορίζει το όνομα του 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. Για παράδειγμα, για να χρησιμοποιήσετε το πρόγραμμα οδήγησης περιόδου λειτουργίας βάσης δεδομένων και να αποθηκεύσετε δεδομένα συνεδρίας σε έναν πίνακα συνεδρίας, με DB τύπου MySQL, μπορείτε να ορίσετε τις ακόλουθες μεταβλητές περιβάλλοντος:

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

Ρύθμιση συνεδρίας Laravel

Υπάρχουν τρεις τρόποι για να εργαστείτε με δεδομένα περιόδου σύνδεσης στο Laravel: 

  • χρησιμοποιώντας τοhelper του global session;
  • χρησιμοποιώντας την πρόσοψη Session;
  • μέσω ενός Request instance

Σε όλες αυτές τις περιπτώσεις, τα δεδομένα που αποθηκεύετε στη συνεδρία θα είναι διαθέσιμα σε επόμενα αιτήματα που υποβάλλονται από τον ίδιο χρήστη μέχρι να λήξει η περίοδος λειτουργίας ή να καταστραφεί με μη αυτόματο τρόπο.

Ενημερωτικό δελτίο καινοτομίας
Μην χάσετε τα πιο σημαντικά νέα για την καινοτομία. Εγγραφείτε για να τα λάβετε μέσω email.

Global Session Helper

Στο 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

Ενημερωτικό δελτίο καινοτομίας
Μην χάσετε τα πιο σημαντικά νέα για την καινοτομία. Εγγραφείτε για να τα λάβετε μέσω email.

Πρόσφατα άρθρα

Τα οφέλη των σελίδων χρωματισμού για παιδιά - ένας κόσμος μαγείας για όλες τις ηλικίες

Η ανάπτυξη λεπτών κινητικών δεξιοτήτων μέσω του χρωματισμού προετοιμάζει τα παιδιά για πιο σύνθετες δεξιότητες όπως η γραφή. Να χρωματίσω…

2 Μαΐου 2024

Το μέλλον είναι εδώ: Πώς η ναυτιλιακή βιομηχανία φέρνει επανάσταση στην παγκόσμια οικονομία

Ο ναυτικός τομέας είναι μια πραγματική παγκόσμια οικονομική δύναμη, η οποία έχει προσανατολιστεί προς μια αγορά 150 δισεκατομμυρίων...

1 Μαΐου 2024

Οι εκδότες και το OpenAI υπογράφουν συμφωνίες για τη ρύθμιση της ροής πληροφοριών που επεξεργάζεται η τεχνητή νοημοσύνη

Την περασμένη Δευτέρα, οι Financial Times ανακοίνωσαν συμφωνία με το OpenAI. Η FT αδειοδοτεί την παγκόσμιας κλάσης δημοσιογραφία της…

Απρίλιος 30 2024

Ηλεκτρονικές πληρωμές: Δείτε πώς οι υπηρεσίες ροής σας κάνουν να πληρώνετε για πάντα

Εκατομμύρια άνθρωποι πληρώνουν για υπηρεσίες ροής, πληρώνοντας μηνιαίες συνδρομές. Είναι κοινή γνώμη ότι…

Απρίλιος 29 2024

Διαβάστε την Καινοτομία στη γλώσσα σας

Ενημερωτικό δελτίο καινοτομίας
Μην χάσετε τα πιο σημαντικά νέα για την καινοτομία. Εγγραφείτε για να τα λάβετε μέσω email.

Seguici