k-ko/slim3-session-middleware

Session middleware and helper for Slim 3.

v0.8.1 2024-11-02 12:12 UTC

This package is auto-updated.

Last update: 2025-01-02 12:42:30 UTC


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.

Useful Links