/mongo-sessions

MongoDB Sessions

Primary LanguagePHP

MongoDB Sessions

Build status on GitHub XP Framework Module BSD Licence Requires PHP 7.4+ Supports PHP 8.0+ Latest Stable Version

MongoDB-based sessions implementation.

Example

use web\session\InMongoDB;
use com\mongodb\MongoConnection;

$conn= new MongoConnection('mongodb://localhost');
$sessions= new InMongoDB($conn->collection('test', 'sessions'));

Session expiry

By default, cleaning up expired sessions is handled by the implementation. For a more performant version, use TTL indexes as follows.

Setup collection

Issue the following in MongoDB shell:

db.sessions.createIndex({"_created": 1}, {expireAfterSeconds: 86400})

Add TTL flag

Pass InMongoDB::USING_TTL as second parameter to the InMongoDB constructor:

$sessions= new InMongoDB($conn->collection('test', 'sessions'), InMongoDB::USING_TTL);

This will use the expireAfterSeconds value as session duration.