Skip to content

xp-forge/mongo-sessions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.