public function MongoDbSessionHandler::__construct in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php \Symfony\Component\HttpFoundation\Session\Storage\Handler\MongoDbSessionHandler::__construct()
Constructor.
List of available options:
- database: The name of the database [required]
- collection: The name of the collection [required]
- id_field: The field name for storing the session id [default: _id]
- data_field: The field name for storing the session data [default: data]
- time_field: The field name for storing the timestamp [default: time]
- expiry_field: 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.
Parameters
\Mongo|\MongoClient $mongo A MongoClient or Mongo instance:
array $options An associative array of field options:
Throws
\InvalidArgumentException When MongoClient or Mongo instance not provided
\InvalidArgumentException When "database" or "collection" not provided
File
- vendor/
symfony/ http-foundation/ Session/ Storage/ Handler/ MongoDbSessionHandler.php, line 70
Class
- MongoDbSessionHandler
- MongoDB session handler.
Namespace
Symfony\Component\HttpFoundation\Session\Storage\HandlerCode
public function __construct($mongo, array $options) {
if (!($mongo instanceof \MongoClient || $mongo instanceof \Mongo)) {
throw new \InvalidArgumentException('MongoClient or Mongo instance required');
}
if (!isset($options['database']) || !isset($options['collection'])) {
throw new \InvalidArgumentException('You must provide the "database" and "collection" option for MongoDBSessionHandler');
}
$this->mongo = $mongo;
$this->options = array_merge(array(
'id_field' => '_id',
'data_field' => 'data',
'time_field' => 'time',
'expiry_field' => 'expires_at',
), $options);
}