MongoDbSessionHandler
class MongoDbSessionHandler extends AbstractSessionHandler
Обработчик сессий, использующий пакет mongodb/mongodb и расширение драйвера MongoDB.
Методы
| open($savePath, $sessionName) {@inheritdoc} | из AbstractSessionHandler | |
| string | doRead(string $sessionId) | |
| bool | doWrite(string $sessionId, string $data) | |
| bool | doDestroy(string $sessionId) | |
| validateId($sessionId) {@inheritdoc} | из AbstractSessionHandler | |
| read($sessionId) {@inheritdoc} | из AbstractSessionHandler | |
| write($sessionId, $data) {@inheritdoc} | из AbstractSessionHandler | |
| destroy($sessionId) {@inheritdoc} | из AbstractSessionHandler | |
| __construct(Client $mongo, array $options) Конструктор. | ||
| close() {@inheritdoc} | ||
| gc($maxlifetime) {@inheritdoc} | ||
| updateTimestamp($sessionId, $data) {@inheritdoc} | ||
| Client | getMongo() |
Детали
open($savePath, $sessionName)
{@inheritdoc}
Параметры
| $savePath | ||
| $sessionName |
protected string doRead(string $sessionId)
Параметры
| string | $sessionId |
Возвращаемое значение
| string |
protected bool doWrite(string $sessionId, string $data)
Параметры
| string | $sessionId | |
| string | $data |
Возвращаемое значение
| bool |
protected bool doDestroy(string $sessionId)
Параметры
| string | $sessionId |
Возвращаемое значение
| bool |
validateId($sessionId)
{@inheritdoc}
Параметры
| $sessionId |
read($sessionId)
{@inheritdoc}
Параметры
| $sessionId |
write($sessionId, $data)
{@inheritdoc}
Параметры
| $sessionId | ||
| $data |
destroy($sessionId)
{@inheritdoc}
Параметры
| $sessionId |
__construct(Client $mongo, array $options)
Конструктор.
Список доступных параметров: * database: Имя базы данных [обязательно] * collection: Имя коллекции [обязательно] * id_field: Имя поля для хранения идентификатора сессии [по умолчанию: _id] * data_field: Имя поля для хранения данных сессии [по умолчанию: data] * time_field: Имя поля для хранения отметки времени [по умолчанию: time] * expiry_field: Имя поля для хранения отметки времени истечения срока действия [по умолчанию: expires_at].
Сильно рекомендуется создать индекс на поле expiry_field для автоматической очистки устаревших сессий. В качестве альтернативы, можно автоматически истекать сессии в базе данных, как описано ниже:
Коллекции с TTL (Time-To-Live) могут использоваться в MongoDB 2.2+ для автоматической очистки устаревших сессий. Пример такого индекса:
db.<session-collection>.ensureIndex(
{ "<expiry-field>": 1 },
{ "expireAfterSeconds": 0 }
)
Дополнительные сведения: http://docs.mongodb.org/manual/tutorial/expire-data/
Если вы используете такой индекс, можно установить значение параметра gc_probability в 0, так как сбор мусора не требуется.
Параметры
| Client | $mongo | Экземпляр MongoDB\Client |
| array | $options | Ассоциативный массив параметров поля |
Исключения
| InvalidArgumentException | При отсутствии "database" или "collection" |
close()
{@inheritdoc}
gc($maxlifetime)
{@inheritdoc}
Параметры
| $maxlifetime |
updateTimestamp($sessionId, $data)
{@inheritdoc}
Параметры
| $sessionId | ||
| $data |
protected Client getMongo()
Возвращаемое значение
| Client |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/HttpFoundation/Session/Storage/Handler/MongoDbSessionHandler.html