ellipse/session

Psr-15 middleware allowing to use session with Psr-7 request and response

Maintainers

👁 pmall

Package info

github.com/ellipsephp/session

pkg:composer/ellipse/session

Statistics

Installs: 150

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

0.3.0 2018-04-27 14:10 UTC

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 53256a3b4f6e96edde2de6f32b561b20021368f7

  • pmall <pierre.mallinjoud.woop@gmail.com>

middlewaresessionpsr-7psr-15

This package is auto-updated.

Last update: 2026-06-26 03:50:57 UTC


README

This package provides a Psr-15 middleware managing session. It works out of the box using the session configuration values, yet it is suited to the Psr-7 request/response abstraction.

Require php >= 7.0

Installation composer require ellipse/session

Run tests ./vendor/bin/kahlan

Using the session middleware

<?php

use Ellipse\Dispatcher;
use Ellipse\Session\SessionMiddleware;

// By default SessionMiddleware uses php session configuration values.
$middleware = new SessionMiddleware

 // Will call php session_set_save_handler($handler) before starting the session.
 ->withSaveHandler($handler)

 // Will call php session_name('session_name') before starting the session.
 ->withName('session_name')

 // Will call php session_save_path('/session/save/path') before starting the session.
 ->withSavePath('/session/save/path')

 // Will call php session_cache_limiter('public') before starting the session.
 ->withCacheLimiter('public')

 // Will call php session_cache_expire(60) before starting the session.
 ->withCacheExpire(60)

 // Will call php session_set_cookie_params(3600, '/path', 'domain', true, true) before starting the session.
 ->withCookieParams([
 'lifetime' => 3600,
 'path' => '/path',
 'domain' => 'domain',
 'secure' => true,
 'httponly' => true,
 ]);

// Build a dispatcher using the session middleware.
$dispatcher = new Dispatcher([

 $middleware,

 // Next middleware have access to the request Ellipse\Session::class attribute.
 new class implements MiddlewareInterface
 {
 public function process(ServerRequestInterface $request, RequestHandlerInterface $handler)
 {
 // Session data is attached to the Ellipse\Session::class request attribute.
 $session = $request->getAttribute(Ellipse\Session::class);

 // Return the session id (session_id())
 $session->id();

 // Regenerate the session id (session_regenerate_id(bool $delete_old_session = false))
 $session->regenerate_id();

 // Set a session value.
 $session->set('key', 'value');

 // Set a session value only for the next session.
 $session->flash('key', 'value');

 // Return whether a session value is set.
 $session->has('key');

 // Return an array of all the session data.
 $session->all();

 // Return the value associated to the given key.
 $session->get('key');

 // Return a default value when the given key is not set.
 $session->get('notset', 'default');

 // Unset a session value.
 $session->unset('key');

 // Unset all session value.
 $session->delete();
 }
 }
]);