ghostff / session
PHP 会话管理器(非阻塞、闪存、分段、会话加密)。
v3.0.0
2024-07-24 14:24 UTC
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: ^8
README
PHP 会话管理器(非阻塞、闪存、分段、会话加密)。使用 PHP open_ssl 对会话数据进行可选的加密/解密。
驱动程序支持范围
安装
您可以直接下载最新的 发布版本 作为独立版本,或者您可以使用 Composer
composer require ghostff/session
基本用法
# Start session with default configurations. $session = new Session(); $session->set('email', 'foo@bar.com'); echo $session->get('email');
配置选项
# use custom configuration file. Session::setConfigurationFile('path/to/my/config.php'); # overriding specific configuration settings Session::updateConfiguration([ Session::CONFIG_DRIVER => Redis::class, Session::CONFIG_START_OPTIONS => [ Session::CONFIG_START_OPTIONS_SAVE_PATH => __DIR__ . '/tmp' ] ]); # override a configuration for current session instance $session = new Session([Session::CONFIG_ENCRYPT_DATA => true]);
初始化会话
# Start session with an auto generated id. $session = new Session(); # Start session with custom ID $session = new Session(null, bin2hex(random_bytes(32)));
使用分段 :Session
$segment = $session->segment('my_segment');
检索会话 ID :string
echo $session->id();
提交更改 :void
# Opens, writes and closes session. $session->commit();
设置会话数据 :Session
$session->set('fname', 'foo'); # Setting Segment $segment->set('name', 'bar'); # Setting Flash $session->setFlash('name', 'foobar'); # Setting Segment Flash $segment->setFlash('name', 'barfoo'); $session->commit();
检索会话数据 :mixed
echo $session->get('name'); # outputs foo echo $session->getOrDefault('unset_value', 'not found'); # outputs not found # Retrieving Segment echo $segment->get('name'); # outputs bar echo $segment->getOrDefault('unset_value', 'not found'); # outputs not found # Retrieving Flash echo $session->getFlash('name'); # outputs foobar echo $session->getFlashOrDefault('name', 'not found'); # outputs not found # Retrieving Segment Flash echo $segment->getFlash('name'); # outputs barfoo echo $segment->getFlashOrDefault('name', 'not found'); # outputs not found
删除会话数据 :Session
$session->del('name'); # Removing Segment $segment->del('name'); # Removing Flash $session->delFlash('name'); # Removing Segment Flash $segment->delFlash('name');
检索所有会话或分段数据 :array
$session->getAll(); # Retrieve only in specified segment. $session->getAll('my_segment_name');
检查变量是否存在于当前会话命名空间中 :bool
$session->exist('name'); # Search flashes $session->exist('name', true);
删除当前分段中的所有数据 :Session
$session->clear();
销毁会话 :void
$session->destroy();
重新生成会话ID :void
$session->rotate(); # Delete the old associated session file or not $session->rotate(true);
设置队列中的会话数据 :Session
$session->push('age', 10) ->push('age', 20) ->push('age', 30) ->push('age', 40);
检索(弹出/移除)队列中的会话数据 :mixed
echo $session->pop('age', true); # outputs 10 echo $session->pop('age', true); # outputs 20 echo $session->pop('age'); # outputs 40 echo $session->pop('age'); # outputs 30