stechstudio/laravel-raw-sessions

为 Laravel 提供原生 PHP 会话处理器

0.2 2022-11-15 16:25 UTC

This package is auto-updated.

Last update: 2024-09-15 20:25:41 UTC


README

截至版本 4.1.0,Laravel 已经移除了原生的会话处理器,将其简化为文件处理器的别名。

http://wiki.laravel.io/Changelog_(Laravel_4)#Version_4.1.0

此处理器可以恢复这些功能。

你为什么想要这个?

实际上,你不应该想要这个。Laravel 自带的会话管理有一些非常酷的优点,你应该真的使用它。

除非你不能。

有时,你可能有一个在同一域名上运行的独立非 Laravel PHP 应用程序,它需要完整的会话共享。在我们的案例中,这是一个正在用 Laravel 进行重构的遗留应用程序,但在此期间需要完全的会话共享。

设置

首先添加 composer 依赖项

"require": {
    "stechstudio/laravel-raw-sessions" : "0.1.*"

当然,然后更新 composer

composer update

现在将服务提供者添加到 config/app.php 中的数组

'providers' => array(
    ...
    'STS\Session\LaravelRawSessionServiceProvider',

config/session.php 中将 driver 设置为 raw

'driver' => 'raw',

最后,确保在同一文件中关闭加密。我们让 PHP 管理会话的唯一方法是告诉 Laravel 不要加密它。

'encrypt' => false,

就这样!你所有的 Laravel Session 调用都将读取和写入到原始的 $_SESSION 数组。

命名空间会话

如果你与其他应用程序共享会话,可能希望避免污染根 $_SESSION 数组。

要更改此设置,请指定 config/session.php 中的 namespace 参数

'driver' => 'raw',
'namespace' => 'mynamespace',

这将导致 Laravel 将所有会话数据存储在 $_SESSION['mynamespace'] 下。