Phalcon - Quản lý phiên
Phiên là lưu trữ thông tin phía máy chủ giúp tương tác của người dùng với trang web hoặc ứng dụng web. Mỗi phiên được xác định duy nhất với một ID phiên, ID này được chuyển đến máy chủ web bất cứ khi nào trình duyệt đưa ra yêu cầu HTTP. ID phiên được ghép nối mọi lúc với cơ sở dữ liệu nội bộ để tất cả các biến được lưu trữ được truy xuất.
Phiên ở Phalcon
Phalcon sử dụng các thành phần phiên bao gồm các trình bao bọc để truy cập dữ liệu phiên.
Sau đây là các tính năng trong Phalcon:
Dữ liệu phiên có thể được tách biệt với các thành phần khác trên cùng một miền.
Theo nhu cầu của ứng dụng, giá trị phiên có thể được thay đổi với sự trợ giúp của bộ điều hợp phiên.
Bắt đầu một phiên trong Phalcon
Tất cả các hoạt động phiên được liên kết với các tệp bộ điều hợp được khai báo trong Services.php tập tin bên trong /config thư mục của ứng dụng web.
/**
* Start the session the first time some component requests the session service
*/
$di->setShared('session', function () {
$session = new SessionAdapter();
$session->start();
return $session;
});
Tạo phiên
Step 1 - Tạo bộ điều khiển phiên để khởi tạo phiên sao cho dữ liệu có thể được truy xuất một cách thích hợp.
Step 2 - Tạo một phiên có tên và giá trị.
<?php
class SessionController extends \Phalcon\Mvc\Controller {
public function indexAction() {
//Define a session variable
$this->session->set("user-name", "Omkar");
//Check if the variable is defined
if ($this->session->has("user-name")) {
//Retrieve its value
$name = $this->session->get("user-name");
echo($name);
}
}
}
Đoạn mã trên tạo ra kết quả sau.
Xóa phiên
Có thể hủy phiên hoặc bỏ đặt một số giá trị biến trong phiên trong Phalcon.
Sau đây là cú pháp để bỏ đặt giá trị biến trong phiên.
$this->session->remove(<variable-name>);
Như thể hiện trong ví dụ trên, tên biến được tạo trong phiên là “data-content” có thể được xóa bằng cách sử dụng mã sau.
public function removeAction() {
// Remove a session variable with associated session
$this->session->remove("data-content");
}
;
Sau đây là cú pháp để hủy phiên hoàn chỉnh.
$this->session->destroy();