pinga/pingsess

A PHP session handler

v0.1.1 2023-03-10 13:17 UTC

This package is auto-updated.

Last update: 2024-04-10 15:43:35 UTC


README

Latest Version on Packagist Software License Build Status Code Coverage Scrutinizer Code Quality Total Downloads

A middleware (PSR-15) oriented session and flash message handler for PHP, based on the wonderful odan/session. For basic documentation, check:

Common example

// Start the session
$session->start();

// Set a session variable
$session->set('user_id', 123);

// Get a session variable
$user_id = $session->get('user_id');

// Check if a session variable exists
if ($session->has('user_id')) {
    // ...
}

// Delete a session variable
$session->delete('user_id');

// Clear all session variables
$session->clear();

// Regenerate the session ID
$session->regenerateId();

// Destroy the session
$session->destroy();

Specific examples

$config = [
    'name' => 'app',
];

// Create a standard session handler
$session = new \Odan\Session\PhpSession($config);
use Odan\Session\MemorySession;

$session = new MemorySession();
use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\Local;
use Odan\Session\FilesystemSession;

// Create a Filesystem instance
$adapter = new Local(__DIR__.'/sessions');
$filesystem = new Filesystem($adapter);

// Create a FilesystemSession instance
$session = new FilesystemSession($filesystem, [
    'name' => 'my_session',
]);
use Odan\Session\RedisSession;
use Redis;

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

$session = new RedisSession($redis, [
    'name' => 'my_app_session',
    'lifetime' => 3600,
]);
use Odan\Session\MemcachedSession;
use Memcached;

$memcached = new Memcached();
$memcached->addServer('localhost', 11211);

$session = new MemcachedSession($memcached, [
    'name' => 'my_app_session',
    'lifetime' => 3600,
]);
use Odan\Session\PdoSession;
use PDO;

$dsn = 'mysql:host=localhost;dbname=my_database';
$username = 'my_username';
$password = 'my_password';

$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$session = new PdoSession($pdo, [
    'name' => 'my_app_session',
    'lifetime' => 3600,
    'db_table' => 'my_sessions',
]);