horizom/session

Horizom Session 包。

3.1.0 2022-07-10 03:28 UTC

This package is auto-updated.

Last update: 2024-09-29 06:03:24 UTC


README

Total Downloads Latest Stable Version License

Horizom Session

处理会话的PHP库。

要求

此库兼容的PHP版本:8.0 | 8.1。

安装

安装此扩展的首选方式是通过Composer

要安装PHP会话库,只需

composer require horizom/session

前面的命令只会安装必要的文件,如果您希望下载整个源代码,可以使用

composer require horizom/session --prefer-source

可用方法

此库中的可用方法

启动会话

$session->start(array $options = []);

@see https://php.ac.cn/session.configuration 获取可用 $options 列表及其默认值

@throws SessionException 如果已发送头信息

@throws SessionException 如果会话已启动

@throws SessionException 如果设置选项失败

@Return bool

检查会话是否已启动

$session->isStarted();

@Return bool

通过名称设置属性

$session->set(string $name, mixed $value = null);

@throws SessionException 如果会话未启动

@Return void

通过名称获取属性

如果属性不存在,可选地定义默认值。

$session->get(string $name, mixed $default = null);

@Return mixed

获取所有属性

$session->all();

@Return array $_SESSION内容

检查属性是否存在于会话中

$session->has(string $name);

@Return bool

一次性设置多个属性

如果属性存在,则替换它们,如果它们不存在,则创建它们。

$session->replace(array $data);

@throws SessionException 如果会话未启动

@Return void

通过名称删除属性并返回其值

如果属性不存在,可选地定义默认值。

$session->pull(string $name, mixed $default = null);

@throws SessionException 如果会话未启动

@Return mixed 属性值

通过名称删除属性

$session->remove(string $name);

@throws SessionException 如果会话未启动

@Return void

释放所有会话变量

$session->clear();

@throws SessionException 如果会话未启动

@Return void

获取会话ID

$session->getId();

@Return string 会话ID

设置会话ID

$session->setId(string $sessionId);

@throws SessionException 如果会话已启动

@Return void

使用新生成的ID更新当前会话ID

$session->regenerateId(bool $deleteOldSession = false);

@throws SessionException 如果会话未启动

@Return bool

获取会话名称

$session->getName();

@Return string 会话名称

设置会话名称

$session->setName(string $name);

@throws SessionException 如果会话已启动

@Return void

销毁会话

$session->destroy();

@throws SessionException 如果会话未启动

@Return bool

快速开始

要使用此库与 Composer

use Horizom\Session\Session;

$session = new Session();

或者,您可以使用外观来静态访问方法

use Horizom\Session\Facades\Session;

用法

此库的使用示例

- 启动会话

不设置选项

$session->start();

设置选项

$session->start([
    // 'cache_expire' => 180,
    // 'cache_limiter' => 'nocache',
    // 'cookie_domain' => '',
    'cookie_httponly' => true,
    'cookie_lifetime' => 8000,
    // 'cookie_path' => '/',
    'cookie_samesite' => 'Strict',
    'cookie_secure'   => true,
    // 'gc_divisor' => 100,
    // 'gc_maxlifetime' => 1440,
    // 'gc_probability' => true,
    // 'lazy_write' => true,
    // 'name' => 'PHPSESSID',
    // 'read_and_close' => false,
    // 'referer_check' => '',
    // 'save_handler' => 'files',
    // 'save_path' => '',
    // 'serialize_handler' => 'php',
    // 'sid_bits_per_character' => 4,
    // 'sid_length' => 32,
    // 'trans_sid_hosts' => $_SERVER['HTTP_HOST'],
    // 'trans_sid_tags' => 'a=href,area=href,frame=src,form=',
    // 'use_cookies' => true,
    // 'use_only_cookies' => true,
    // 'use_strict_mode' => false,
    // 'use_trans_sid' => false,
]);

使用外观

Session::start();

- 检查会话是否已启动

使用会话对象

$session->isStarted();

使用外观

Session::isStarted();

- 通过名称设置属性

使用会话对象

$session->set('foo', 'bar');

使用外观

Session::set('foo', 'bar');

- 通过名称获取属性

如果属性不存在则不设置默认值

$session->get('foo'); // null if attribute does not exist

如果属性不存在则设置默认值

$session->get('foo', false); // false if attribute does not exist

使用外观

Session::get('foo');

- 获取所有属性

使用会话对象

$session->all();

使用外观

Session::all();

- 检查属性是否存在于会话中

使用会话对象

$session->has('foo');

使用外观

Session::has('foo');

- 一次性设置多个属性

使用会话对象

$session->replace(['foo' => 'bar', 'bar' => 'foo']);

使用外观

Session::replace(['foo' => 'bar', 'bar' => 'foo']);

- 通过名称删除属性并返回其值

如果属性不存在则不设置默认值

$session->pull('foo'); // null if attribute does not exist

如果属性不存在则设置默认值

$session->pull('foo', false); // false if attribute does not exist

使用外观

Session::pull('foo');

- 通过名称删除属性

使用会话对象

$session->remove('foo');

使用外观

Session::remove('foo');

- 释放所有会话变量

使用会话对象

$session->clear();

使用外观

Session::clear();

- 获取会话ID

使用会话对象

$session->getId();

使用外观

Session::getId();

- 设置会话ID

使用会话对象

$session->setId('foo');

使用外观

Session::setId('foo');

- 使用新生成的ID更新当前会话ID

在不删除旧会话的情况下重新生成ID

$session->regenerateId();

通过删除旧会话来重新生成ID

$session->regenerateId(true);

使用外观

Session::regenerateId();

- 获取会话名称

使用会话对象

$session->getName();

使用外观

Session::getName();

- 设置会话名称

使用会话对象

$session->setName('foo');

使用外观

Session::setName('foo');

- 销毁会话

使用会话对象

$session->destroy();

使用外观

Session::destroy();

许可证

本存储库采用MIT许可证授权。