Giới thiệu
Hệ thống HTTP không có chỗ lưu trữ, thế nên sessions cung cấp cho ta một cách để lưu trữ thông tin các yêu cầu từ người sử dụng. Laravel cung cấp đầy đủ hệ thống thống nhất thông qua API để hỗ trợ việc này. Hỗ trợ các back-ends nổi tiếng như Memcached, Redis, và cơ sở dữ liệu đã được bao gồm sẵn trong gói.
Cấu hình
Thông tin cấu hình của sessions được chứa tại config/session.php. Hãy chắc rằng bạn nắm rõ tất cả các thông tin cấu hình của session trước khi chỉnh sửa lại tập tin này. Theo mặc định, Laravel sẽ cấu hình sử dụng file cho session driver, nó sẽ hoạt động tốt trên mọi ứng dụng. Đối với các ứng dụng chạy thực tế, bạn có thể sử dụng memcached hoặc redis drivers để cho hiệu suất sử dụng đạt cao hơn.
Các session driver được định nghĩa là nơi lưu trữ và truy suất dữ liệu session thông qua các yêu cầu. Laravel đã tích hợp sẵn một số session driver sau:
file
- sessions sẽ chứa tạistorage/framework/sessions
. -cookie
- sessions sẽ lưu có bảo mật, mã hóa bởi cookies. -database
- sessions sẽ lưu trong CSDL được dùng trong ứng dụng của bạn. -memcached
/redis
- session sẽ lưu và truy suất nhanh hơn, dựa trên cache. -array
- sessions sẽ được lưu trong mảng PHP thông thường khá đơn giản và tồn tại rất lâu.
Lưu ý : Với array driver chỉ nên sử dụng khi chạy tests
để có các dữ liệu tồn tại trong thời gian dài.
Điều kiện tiên quyết của Driver
1. Cơ sở dữ liệu Để sử dụng database
session driver, bạn phải thiết lập bảng chứa các dữ liệu session trong cơ sở dữ liệu. Bên dưới là một ví dụ Schema dùng tạo bảng:
Schema::create['sessions', function [$table] {
$table->string['id']->unique[];
$table->integer['user_id']->nullable[];
$table->string['ip_address', 45]->nullable[];
$table->text['user_agent']->nullable[];
$table->text['payload'];
$table->integer['last_activity'];
}];
Bạn có thể sử dụng lệnh session:table
trong Artisan command để tạo tự động Migration này!
php artisan session:table
composer dump-autoload
php artisan migrate
2.Redis Trước khi dùng Redis sessions
cho Laravel, Bạn cần phải cài đặt gói predis/predis package [~1.0]
thông qua Composer
.
Những cân nhắc sử dụng Session
Laravel framework dùng flash
session trong nội bộ, thế nên bạn không nên đặt tên của session
trùng với tên đó.
Nếu bạn muốn tất cả các dữ liệu Session
của bạn được mã hóa, hãy thiết lặp encrypt
với giá trị là true
.
Cách dùng cơ bản
Truy cập vào Session
Trước tiên, để truy cập session
. Bạn cần phải truy cập ứng dụng thông qua các yêu cầu HTTP
, đó là các phương thức Controller
mà bạn muốn hướng đến.
Hãy nhớ rằng, các phương thức controller
phụ thuộc vào Laravel service container: