Hướng dẫn dùng laravel session trong PHP

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ại storage/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:

Chủ Đề