CakePHP
  • 文档
    • 手册
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识 & 商标
  • 商业解决方案
  • 周边商品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与进来
    • 问题 (Github)
    • 面包房
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 简讯
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • 帮助 & 支持
    • 论坛
    • Stack Overflow
    • IRC
    • Slack
    • 付费支持
CakePHP

C CakePHP 5.1 Chiffon API

  • 项目
    • CakePHP
      • CakePHP
      • Chronos
      • Elastic Search
      • 队列
  • 版本
    • 5.1
      • 5.1
      • 5.0
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

命名空间

  • 全局
  • Cake
    • 缓存
    • 集合
    • 命令
    • 控制台
    • 控制器
    • 核心
    • 数据库
    • 数据源
    • 错误
    • 事件
    • 表单
    • Http
      • 客户端
      • Cookie
      • 异常
      • 中间件
      • 会话
      • 测试套件
    • 国际化
    • 日志
    • 邮件
    • 网络
    • ORM
    • 路由
    • 测试套件
    • 实用工具
    • 验证
    • 视图

课程会话

此类是原生 PHP 会话函数的包装器。它提供了几个预设,用于通过外部处理程序进行最常见的会话配置,并帮助在没有警告的情况下在 CLI 中使用会话。

可以使用 Session::create() 从默认值创建会话,也可以通过实例化此类并传递您要使用的完整选项来获取新会话的实例。

当省略特定选项时,此类将从 php.ini 中 session.* 指令的配置值中获取其默认值。当提供配置值时,此类也会更改这些指令。

命名空间: Cake\Http

属性摘要

  • $_engine protected
    SessionHandlerInterface|null

    用作持久化会话数据的引擎的会话处理程序实例。

  • $_isCLI protected
    bool

    此会话是否在 CLI 环境下运行

  • $_lifetime protected
    int

    会话有效的秒数

  • $_started protected
    bool

    指示会话是否已启动

  • $headerSentInfo protected
    array{filename: string, line: int}|null

    有关在何处发送标头的信息。

方法摘要

  • __construct() public

    构造函数。

  • _defaultConfig() protected static

    获取预先制作的默认会话配置之一。

  • _hasSession() protected

    返回是否存在会话

  • _overwrite() protected

    用于将新数据写入 _SESSION,因为 PHP 不希望我们设置 _SESSION 变量本身。

  • _timedOut() protected

    如果会话不再有效,因为上次访问它的时间是在配置的超时时间之后,则返回 true。

  • check() public

    如果给定的变量名在会话中设置,则返回 true。

  • clear() public

    清除会话。

  • close() public

    写入数据并关闭会话

  • consume() public

    从会话中读取并删除变量。

  • create() public static

    在为其构建配置包后,返回一个新的会话实例。此函数允许一个选项数组,该数组将用于配置会话和要使用的处理程序。配置数组中最重要的键是 defaults,它指示要继承的配置集,可能的默认值为

  • delete() public

    从会话中删除变量。

  • destroy() public

    用于销毁无效会话的辅助方法。

  • engine() public

    设置要用于此会话的会话处理程序实例。如果第一个参数传递字符串,则它将被视为类名,第二个参数将作为构造函数中的第一个参数传递。

  • id() public

    返回会话 ID。调用此方法不会自动启动会话。您可能需要手动断言一个已启动的会话。

  • options() public

    为 $options 中的每个键调用 ini_set 并将其设置为传递数组中的相应值。

  • read() public

    返回给定的会话变量,或者如果未给出参数,则返回所有会话变量。

  • readOrFail() public

    返回给定的会话变量,或者如果未找到则抛出异常。

  • renew() public

    重新启动此会话。

  • setEngine() protected

    设置引擎属性并更新 PHP 中的会话处理程序。

  • start() public

    启动会话。

  • started() public

    确定会话是否已启动。

  • write() public

    将值写入给定的会话变量名。

方法详情

__construct() ¶ public

__construct(array<string, mixed> $config = [])

构造函数。

配置

  • timeout: 会话可以空闲且保持有效的时间(分钟)。如果设置为 0,则不会应用服务器端超时。
  • cookiePath: 设置会话 Cookie 的 URL 路径。映射到 session.cookie_path php.ini 配置。默认为应用程序的基本路径。
  • ini: 要在会话启动之前更改的 php.ini 指令列表。
  • handler: 一个至少包含 engine 键的数组。用作持久化数据的会话引擎。数组中的其余键将作为引擎的配置数组传递。您可以将 engine 键设置为已实例化的会话处理程序对象。
参数
array<string, mixed> $config optional

要应用于此会话对象的配置

_defaultConfig() ¶ protected static

_defaultConfig(string $name): array|false

获取预先制作的默认会话配置之一。

参数
string $name

配置名称。

返回值
array|false

_hasSession() ¶ protected

_hasSession(): bool

返回是否存在会话

返回值
bool

_overwrite() ¶ protected

_overwrite(array $old, array $new): void

用于将新数据写入 _SESSION,因为 PHP 不希望我们设置 _SESSION 变量本身。

参数
array $old

旧变量集 => 值

array $new

新变量集 => 值

返回值
void

_timedOut() ¶ protected

_timedOut(): bool

如果会话不再有效,因为上次访问它的时间是在配置的超时时间之后,则返回 true。

返回值
bool

check() ¶ public

check(string|null $name = null): bool

如果给定的变量名在会话中设置,则返回 true。

参数
string|null $name optional

要检查的变量名

返回值
bool

clear() ¶ public

clear(bool $renew = false): void

清除会话。

它还可以选择清除会话 ID 并更新会话。

参数
bool $renew optional

如果会话应该更新,也是。默认为 false。

返回值
void

close() ¶ public

close(): true

写入数据并关闭会话

返回值
true

consume() ¶ public

consume(string $name): mixed|null

从会话中读取并删除变量。

参数
string $name

要读取和删除的键(或发送到 Hash.extract 的路径)。

返回值
mixed|null

create() ¶ public static

create(array $sessionConfig = []): static

在为其构建配置包后,返回一个新的会话实例。此函数允许一个选项数组,该数组将用于配置会话和要使用的处理程序。配置数组中最重要的键是 defaults,它指示要继承的配置集,可能的默认值为

  • php: 只使用 php.ini 中配置的会话
  • cache: 使用 CakePHP 缓存系统作为会话的存储,您需要传递 config 键,其中包含已配置的缓存引擎的名称。
  • database: 使用 CakePHP ORM 来持久化和管理会话。默认情况下,这需要您数据库中名为 sessions 的表,或者配置中有一个 model 键来指示要使用哪个 Table 对象。
  • cake: 使用文件来存储会话,但让 CakePHP 管理它们并决定在哪里存储它们。

完整的选项列表如下

  • defaults: 如上所述,可以是 'php'、'database'、'cache' 或 'cake'。
  • handler: 包含处理程序配置的数组。
  • ini: 会话开始前要设置的 php.ini 指令列表。
  • timeout: 以分钟为单位的“空闲超时”。如果在 timeout 分钟内没有收到请求,则会重新生成会话。
参数
array $sessionConfig 可选

会话配置。

返回值
静态
另请参阅
\Cake\Http\Session::__construct()

delete() ¶ 公共

delete(string $name): void

从会话中删除变量。

参数
string $name

要删除的会话变量。

返回值
void

destroy() ¶ 公共

destroy(): void

用于销毁无效会话的辅助方法。

返回值
void

engine() ¶ 公共

engine(SessionHandlerInterface|string|null $class = null, array<string, mixed> $options = []): SessionHandlerInterface|null

设置要用于此会话的会话处理程序实例。如果第一个参数传递字符串,则它将被视为类名,第二个参数将作为构造函数中的第一个参数传递。

如果将 SessionHandlerInterface 的实例作为第一个参数提供,则处理程序将设置为它。

如果没有传递任何参数,它将返回当前配置的处理程序实例,如果不存在则返回 null。

参数
SessionHandlerInterface|string|null $class 可选

要使用的会话处理程序。

array<string, mixed> $options 可选

要传递给 SessionHandler 构造函数的选项。

返回值
SessionHandlerInterface|null
抛出
InvalidArgumentException

id() ¶ 公共

id(string|null $id = null): string

返回会话 ID。调用此方法不会自动启动会话。您可能需要手动断言一个已启动的会话。

通过将 ID 传入它,您也可以在会话尚未开始的情况下替换会话 ID。请注意,根据会话处理程序的不同,会话 ID 中并不允许所有字符。例如,文件会话处理程序只允许 a-z A-Z 0-9 、(逗号)和 -(减号)范围内的字符。

参数
string|null $id 可选

用于替换当前会话 ID 的 ID。

返回值
字符串

options() ¶ 公共

options(array<string, mixed> $options): void

为 $options 中的每个键调用 ini_set 并将其设置为传递数组中的相应值。

示例

$session->options(['session.use_cookies' => 1]);
参数
array<string, mixed> $options

要设置的 Ini 选项。

返回值
void
抛出
Cake\Core\Exception\CakeException
如果任何指令无法设置。

read() ¶ 公共

read(string|null $name = null, mixed $default = null): mixed|null

返回给定的会话变量,或者如果未给出参数,则返回所有会话变量。

参数
string|null $name optional

会话变量的名称(或发送到 Hash.extract 的路径)。

mixed $default 可选

路径不存在时的返回值。

返回值
mixed|null

readOrFail() ¶ 公共

readOrFail(string $name): mixed|null

返回给定的会话变量,或者如果未找到则抛出异常。

参数
string $name

会话变量的名称(或发送到 Hash.extract 的路径)。

返回值
mixed|null
抛出
Cake\Core\Exception\CakeException

renew() ¶ 公共

renew(): void

重新启动此会话。

返回值
void

setEngine() ¶ 受保护的

setEngine(SessionHandlerInterface $handler): SessionHandlerInterface

设置引擎属性并更新 PHP 中的会话处理程序。

参数
SessionHandlerInterface $handler

要设置的处理程序。

返回值
SessionHandlerInterface

start() ¶ 公共

start(): bool

启动会话。

返回值
bool
抛出
Cake\Core\Exception\CakeException
如果会话已启动。

started() ¶ 公共

started(): bool

确定会话是否已启动。

返回值
bool

write() ¶ 公共

write(array|string $name, mixed $value = null): void

将值写入给定的会话变量名。

参数
array|string $name

变量的名称。

mixed $value 可选

要写入的值。

返回值
void

属性详细信息

$_engine ¶ 受保护的

用作持久化会话数据的引擎的会话处理程序实例。

类型
SessionHandlerInterface|null

$_isCLI ¶ 受保护的

此会话是否在 CLI 环境下运行

类型
bool

$_lifetime ¶ 受保护的

会话有效的秒数

类型
int

$_started ¶ 受保护的

指示会话是否已启动

类型
bool

$headerSentInfo ¶ 受保护的

有关在何处发送标头的信息。

类型
array{filename: string, line: int}|null
OpenHub
Pingping
Linode
  • 商业解决方案
  • 展示
  • 文档
  • 手册
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标识 & 商标
  • 社区
  • 参与进来
  • 问题 (Github)
  • 面包房
  • 精选资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 简讯
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • 帮助 & 支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成