Ratings | | Unique User Downloads | | Download Rankings |
Not yet rated by the users | | Total: 63 | | All time: 10,255 This week: 145 |
|
Description | | Author Niko Grano
Contributor
|
This package can be used to store session data in Redis using React PHP.
It provides session storage class that can used Redis to store session data.
The class can also provide additional information like if the current user session is active, begin a session if it was not active and getthe current session identifier. Innovation Award
 March 2019
Number 3 |
React PHP is a project that provides event-driven programming to any PHP application somewhat similar to what React.js provides for developing user interfaces for Web based applications.
This package provides means to store PHP session data is Redis database using React PHP.
Manuel Lemos |
| |
 |
|
Innovation award
 Nominee: 5x
Winner: 1x |
|
Details
ReactPHP Session Middleware
Middleware for implementing PHP Sessions in ReactPHP Http Server.
Install
Via composer:
composer require niko9911/react-http-middleware-session
Usage
Register middleware as you normally do.
Pass cookie name to use.
Pass implementation of React cache or use bridge for PSR cache.
Example:
<?php
declare(strict_types=1);
// Cache must be persisted. Array cache will not work.
// Just abstract Example. You need to implement
// \React\Cache\CacheInterface::class interface.
use Niko9911\Harold\Core\Http\Application\Middleware\SessionMiddleware;$cache = new \React\Cache\ArrayCache();
// Or
// This is just example here. I personally use PSR
// implementation with bridge and I save all to Redis.
// This will be much easier if using redis other than
// just ReactPHP stuff. You need to require additional package.
// https://packagist.org/packages/niko9911/react-psr-cache-bridge
// https://packagist.org/packages/cache/redis-adapter
$redis = new \Redis();
$redis->connect($host, 6379);
$redis->select(0);
$redis = \Cache\Adapter\Redis\RedisCachePool($redis);
$cache = new \Niko9911\React\Cache\Bridge\ReactPsrCacheBridge($redis);
$session = new \Niko9911\React\Middleware\SessionMiddleware(
'PHPSESS',
$cache,
3600,
'/',
'',
false,
false,
new \Niko9911\React\Middleware\Session\Id\Random()
);
new \React\Http\Server(
[
$session,
function (\Psr\Http\Message\ServerRequestInterface $request) {
/ @var \Niko9911\React\Middleware\Session\Session $session */
$session = $request->getAttribute(SessionMiddleware::ATTRIBUTE_NAME);
if (!$session->isActive())
{
$session->begin();
}
echo $session->getId();
return new \React\Http\Response();
}
]
);
License
Licensed under the MIT license.
|
Applications that use this package |
|
No pages of applications that use this class were specified.
If you know an application of this package, send a message to the author to add a link here.