tnapf/mysqlsessions

此包已被废弃,不再维护。未建议替代包。

用于在MySQL数据库中存储会话的sessioninterface实现

v0.1.0 2023-02-13 01:16 UTC

This package is auto-updated.

Last update: 2024-05-01 00:06:10 UTC


README

使用MySQL数据库作为会话存储的sessioninterface实现

安装

composer require tnapf/mysqlsessions

使用

设置表格

首先,使用以下SQL代码创建您的会话表

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;

CREATE TABLE `sessions` (
  `id` varchar(16) NOT NULL,
  `data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL CHECK (json_valid(`data`)),
  `expires` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

ALTER TABLE `sessions`
  ADD PRIMARY KEY (`id`);
COMMIT;

创建Session控制器

接下来创建一个PDO连接(将使用tnapf/pdo构建驱动程序)

use Tnapf\Pdo\Driver;
use Tnapf\MysqlSessions\Controller;

$driver = Driver::createMySqlDriver("root", "password", "database")->connect();

/** @var PDO $driver */
$driver = $driver->driver;

$sessions = new Controller($driver);

创建驱动程序后,使用PDO对象作为第一个参数构建Tnapf\MysqlSessions\Controller

创建会话

$session = $session->create(); // you can supply a timestamp in seconds for when the cookie should expire; default is 7 days

header($session->setCookieHeader()); // sends a set-cookie header with the session id

设置会话变量

$session->var = "foo";

// or

$session->set("var", "foo");

取消设置会话变量

unset($session->var);

// or

$session->unset("var");

删除会话

$sessions->delete($session);

// or

$sessions->delete($session->id);