tina4stack / tina4php-session
Multi-backend session handler for Tina4 PHP — supports any Tina4 database, Redis, and Memcached
v2.0.1
2026-03-14 18:23 UTC
Requires
- php: >=8.1
Requires (Dev)
Suggests
- ext-memcached: Required for Memcached session backend
- ext-redis: Required for Redis session backend
- tina4stack/tina4php-database: Required for database session backend (any Tina4 database driver)
README
Multi-backend session handler for the Tina4 PHP framework. Implements PHP's SessionHandlerInterface with pluggable backends — use any Tina4 database driver, Redis, or Memcached.
Installing
composer require tina4stack/tina4php-session
Requirements
- PHP >= 8.1
- A Tina4 database driver (for database backend), OR
- ext-redis (for Redis backend), OR
- ext-memcached (for Memcached backend)
Usage
Database Backend (any Tina4 database)
Works with SQLite3, MySQL, PostgreSQL, Firebird, MSSQL, ODBC, PDO, or MongoDB.
global $DBA; $DBA = new \Tina4\DataSQLite3("myapp.db"); $config = new \Tina4\SessionConfig(); $config->database = $DBA; \Tina4\SessionHandler::start($config); // Use $_SESSION as normal $_SESSION['user'] = 'Andre'; $_SESSION['cart'] = ['item1', 'item2'];
The sessions table is auto-created on first use.
Redis Backend
$config = new \Tina4\SessionConfig(); $config->sessionType = 'redis'; $config->redisConfig = ['host' => '127.0.0.1', 'port' => 6379]; // Optional: $config->redisConfig['auth'] = 'password'; \Tina4\SessionHandler::start($config); $_SESSION['user'] = 'Andre';
Memcached Backend
$config = new \Tina4\SessionConfig(); $config->sessionType = 'memcached'; $config->memcachedConfig = ['host' => '127.0.0.1', 'port' => 11211]; \Tina4\SessionHandler::start($config); $_SESSION['user'] = 'Andre';
Configuration Options
| Property | Default | Description |
|---|---|---|
sessionType |
'database' |
Backend: database, redis, or memcached |
database |
null |
Any Tina4 DataBase driver instance |
tableName |
'tina4_sessions' |
Table name for database backend |
lifetime |
1440 |
Session lifetime in seconds (24 min) |
redisConfig |
null |
['host', 'port', 'auth'] for Redis |
memcachedConfig |
null |
['host', 'port'] for Memcached |
Running Tests
composer test
Our Sponsors
Sponsored with 🩵 by Code Infinity
Supporting open source communities • Innovate • Code • Empower