baraja-core/session

此包的最新版本(v1.4.0)没有可用的许可信息。

使用原生PDO存储会话到数据库的简单性能包。

v1.4.0 2022-03-22 09:28 UTC

README

使用原生 \PDO 将会话存储到数据库的简单性能包。

📦 安装与基本用法

建议使用 Composer 进行安装,您也可以在 PackagistGitHub 上找到此包。

安装命令:

$ composer require baraja-core/session

您可以通过创建内部类的实例来手动使用此包,或者注册DIC扩展以将服务直接链接到Nette框架。

安装数据库结构

创建数据库表 core__session_storage(表名可配置)或使用Doctrine进行自动生成。

MySql表模式

SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';

CREATE TABLE `core__session_storage` (
  `id` varchar(26) COLLATE utf8_unicode_ci NOT NULL,
  `haystack` longtext COLLATE utf8_unicode_ci NOT NULL,
  `last_update` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

表可用于与Doctrine一起使用或单独使用。

如何使用

在Nette框架中,只需使用NEON配置(在 common.neon 文件中定义)

extensions:
   barajaPdoSession: Baraja\Session\SessionExtension

会话存储将自动配置。

对于原生PHP,只需创建新的 SessionStorage 实例并创建处理器

$handler = new \Baraja\Session\SessionStorage(
   '127.0.0.1', // host
   'my_application', // database name
   'root', // user
   '****' // password
);

session_set_save_handler($handler);

警告:必须在开始会话之前设置会话处理器!

定义自定义表名

对于自定义表名,您可以通过两种方式重写默认表名

  • 构造函数 $table 参数
  • 设置器 setTable()

默认表名是 core__session_storage

表名可以在运行时重写,但不推荐这样做。

📄 许可证

baraja-core/session 使用MIT许可证。有关更多详细信息,请参阅 LICENSE 文件。