k-ko / slim3-session-middleware
Session middleware and helper for Slim 3.
v0.8.1
2024-11-02 12:12 UTC
Requires
- php: >=7.2
- psr/http-message: ^1.0
- slim/slim: ^3
README
Simple session middleware for the Slim Framework. Also included is a useful helper class that allows PHP built-in session management.
Forked from https://github.com/andrewdyer/slim3-session-middleware
License
Licensed under MIT. Totally free for private or commercial projects.
Installation
composer require k-ko/slim3-session-middleware
Usage
<?php $app = new \Slim\App(); $app->get('/', function (Request $request, Response $response) use ($container) { if (!isset($container['session']['loggedIn'])) { // ... } // ... }); // Add as LAST middleware to run 1st $app->add(new \Middleware\SessionMiddleware([ 'autorefresh' => true, 'name' => 'myapp_session', 'lifetime' => '1 hour', // optional: 'handler' => new \Session\MySQLiSessionHandler($container['mysqli']) ])); $app->run();
Supported Options
Session Helper
The \Session\Helper
class can be attached to your app container:
$container = $app->getContainer(); $container['session'] = function ($container) { return new \Session\Helper(); };
The helper class can be used to check if a session variable exists in addition to setting, getting and deleting session variables.
$app->get('/', function (Request $request, Response $response) use ($container) { // Check if variable exists $exists = $container['session']->has('my_key'); $exists = isset($container['session']->my_key); $exists = isset($container['session']['my_key']); // Get variable value $value = $container['session']->get('my_key', 'default'); $value = $container['session']->my_key; $value = $container['session']['my_key']; // Take variable value out from session $value = $container['session']->take('my_key', 'default'); // Set variable value $container['session']->set('my_key', 'my_value'); $container['session']->my_key = 'my_value'; $container['session']['my_key'] = 'my_value'; // Remove variable $container['session']->remove('my_key'); unset($container['session']->my_key); unset($container['session']['my_key']); });
Support
If you believe you have found an issue, please report it using the issue tracker, or better yet, fork the repository and submit a pull request.