PHP Classes
elePHPant
Icontem

React PHP Session Middleware using Redis: Store session data in Redis using React PHP

Recommend this page to a friend!
  Info   View files Documentation   View files View files (11)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2019-03-03 (16 days ago) RSS 2.0 feedNot yet rated by the usersTotal: Not yet counted Not yet ranked
Version License PHP version Categories
php-react-http-sessi 1.0Custom (specified...7User Management, Cache, PHP 7
Description Author

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.

  Performance   Level  

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.

  Files folder image Files  
File Role Description
Files folder imagescripts (1 file)
Files folder imagesrc (1 file, 1 directory)
Accessible without login Plain text file .php_cs.dist Example Example script
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file composer.lock Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file phpunit.xml.dist Data Auxiliary data
Accessible without login Plain text file README.md Doc. Read me

 Version Control Unique User Downloads  
 100%
Total:0
This week:0