sulaco-tech / psr7-sessions
PSR-7和PSR-15兼容的中间件实现,用于在基于PSR-7的应用程序中启用会话。
1.0.0
2020-03-23 17:51 UTC
Requires
- php: ^7.0
- ext-json: *
- ext-pcre: *
- sulaco-tech/base58: ^1.0
This package is auto-updated.
Last update: 2024-09-24 05:05:44 UTC
README
PSR-7和PSR-15兼容的中间件实现,用于在基于PSR-7的应用程序中启用会话。
安装
使用composer安装。
$ composer require sulaco-tech/psr7-sessions
要求
此分支需要PHP 7.0或更高版本以及内置扩展
- JSON
- PCRE
以下包也需要
用法
您可以在任何PSR-15兼容的中间件中使用SulacoTech\PSR7Sessions\SessionMiddleware
。
在一个slim/slim
应用程序中,这会看起来像以下这样
use \Slim\Factory\AppFactory; use \Psr\Http\Message\ResponseInterface as Response; use \Psr\Http\Message\ServerRequestInterface as Request; use \SulacoTech\PSR7Sessions\SessionMiddleware; use \SulacoTech\PSR7Sessions\SessionFileStorage; use \SulacoTech\PSR7Sessions\SessionFileStorageConfiguration; // create application $app = AppFactory::create(); // prepare configuration $sessionsDirectory = __DIR__ . '/../tmp/sessions'; $sessionName = 'example'; $sessionsExpirationTime = 300; // in seconds $config = new SessionFileStorageConfiguration($sessionsDirectory, $sessionName, $sessionsExpirationTime); // create storage with some configuration $sessionStorage = new SessionFileStorage($config); // call garbage collector $sessionStorage->gc(); // create and add middleware $app->add(new SessionMiddleware($sessionStorage)); // basic example $app->get('/hello/{name}', function (Request $request, Response $response, array $args) { // get session $session = $request->getAttribute(SessionMiddleware::SESSION_ATTRIBUTE); // read and update session's data $counter = $session->get('counter', 0); $session->set('counter', ++ $counter); // same instructions using array access style //$counter = $session['counter'] ?? 0; //$session['counter'] = ++ $counter; // make a response $response->getBody()->write("Hello, {$args['name']}! This page is visited $counter times."); return $response; }); // run application $app->run();
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。