class MongoDbSessionHandler implements SessionHandlerInterface
MongoDB session handler.
Methods
__construct(Mongo|MongoClient|Client $mongo, array $options) Constructor. | ||
open($savePath, $sessionName) {@inheritdoc} | ||
close() {@inheritdoc} | ||
destroy($sessionId) {@inheritdoc} | ||
gc($maxlifetime) {@inheritdoc} | ||
write($sessionId, $data) {@inheritdoc} | ||
read($sessionId) {@inheritdoc} |
Details
__construct(Mongo|MongoClient|Client $mongo, array $options)
Constructor.
List of available options: * database: The name of the database [required] * collection: The name of the collection [required] * idfield: The field name for storing the session id [default: _id] * datafield: The field name for storing the session data [default: data] * timefield: The field name for storing the timestamp [default: time] * expiryfield: The field name for storing the expiry-timestamp [default: expires_at]
It is strongly recommended to put an index on the expiry_field
for garbage-collection. Alternatively it's possible to automatically expire the sessions in the database as described below:
A TTL collections can be used on MongoDB 2.2+ to cleanup expired sessions automatically. Such an index can for example look like this:
db.<session-collection>.ensureIndex(
{ "<expiry-field>": 1 },
{ "expireAfterSeconds": 0 }
)
More details on: http://docs.mongodb.org/manual/tutorial/expire-data/
If you use such an index, you can drop gc_probability
to 0 since no garbage-collection is required.
open($savePath, $sessionName)
{@inheritdoc}
close()
{@inheritdoc}
destroy($sessionId)
{@inheritdoc}
gc($maxlifetime)
{@inheritdoc}
write($sessionId, $data)
{@inheritdoc}
read($sessionId)
{@inheritdoc}
Please login to continue.