anders / slim-session
适用于 Slim 框架 3 的会话中间件和助手。
3.3.0
2017-06-05 14:49 UTC
Requires
- php: >=5.5
- slim/slim: ^3.0
Requires (Dev)
- phpunit/phpunit: 4.7.*
README
这是一个简单的中间件,适用于Slim 框架 3,允许管理 PHP 内置会话,并包含一个 Helper
类来帮助您处理 $_SESSION
超全局变量。
对于 Slim 框架 2 的中间件版本,请查看此存储库中的 slim-2
分支。
安装
将此行添加到您的 composer.json
文件的 require
块中
"bryanjhv/slim-session": "~3.0"
或者,您也可以在 shell 中运行以下命令
composer require bryanjhv/slim-session:~3.0
用法
$app = new \Slim\App; $app->add(new \Slim\Middleware\Session([ 'name' => 'dummy_session', 'autorefresh' => true, 'lifetime' => '1 hour' ]));
支持选项
lifetime
:会话应持续多长时间?默认为20 分钟
。任何strtotime
可以解析的参数都是有效的。path
、domain
、secure
、httponly
:会话 cookie 的选项。name
:会话 cookie 的名称。默认为slim_session
(而不是 PHP 的PHPSESSID
)。autorefresh
:如果希望用户活动(与服务器交互)时刷新会话,则设置为true
。
会话助手
有一个 Helper
类可用,您可以选择全局注册或实例化
$container = $app->getContainer(); // Register globally to app $container['session'] = function ($c) { return new \SlimSession\Helper; };
这将提供 $app->session
,因此您可以执行以下操作
$app->get('/', function ($req, $res) { // or $this->session if registered $session = new \SlimSession\Helper; // Check if variable exists $exists = $session->exists('my_key'); $exists = isset($session->my_key); $exists = isset($session['my_key']); // Get variable value $my_value = $session->get('my_key', 'default'); $my_value = $session->my_key; $my_value = $session['my_key']; // Set variable value $app->session->set('my_key', 'my_value'); $session->my_key = 'my_value'; $session['my_key'] = 'my_value'; // Merge value recursively $app->session->merge('my_key', ['first' => 'value']); $session->merge('my_key', ['second' => ['a' => 'A']]); $letter_a = $session['my_key']['second']['a']; // "A" // Delete variable $session->delete('my_key'); unset($session->my_key); unset($session['my_key']); // Destroy session $session::destroy(); // Get session id $id = $this->session::id(); return $res; });
贡献者
这里列出了主要贡献者。😄
待办事项
- 完成
Helper
测试。(感谢 @Zemistr) - 针对 Slim 的特定测试(与 Slim 应用程序的集成)。
许可协议
MIT