PHP Class yii\web\MultiFieldSession
With multi-field data storage, session data can be split between several fields in the storage record.
Using such a storage allows saving particular session data into separated field, which then can be used
to manipulate sessions in the way plain PHP does not allow.
For example the ID of the authenticated user can be saved as separated column in the MySQL 'session' table,
which allows to query all active sessions for a particular user or terminate them at will.
Customizing of the session writing is performed via [[writeCallback]], reading via [[readCallback]].
While extending this class you should use
MultiFieldSession::composeFields method - while writing the session data into the storage and
MultiFieldSession::extractData - while reading session data from the storage.
Show file
Open project: yiisoft/yii2
Class Usage Examples
Public Properties
Property |
Type |
Description |
|
$readCallback |
|
a callback that will be called during session data reading.
The signature of the callback should be as follows:
function ($fields)
where $fields is the storage field set for read session and $session is this session instance.
If callback returns an array, it will be merged into the session data.
For example:
php
function ($fields) {
return [
'expireDate' => Yii::$app->formatter->asDate($fields['expire']),
];
}
|
|
$writeCallback |
|
a callback that will be called during session data writing.
The signature of the callback should be as follows:
function ($session)
where $session is this session instance, this variable can be used to retrieve session data.
Callback should return the actual fields set, which should be saved into the session storage.
For example:
php
function ($session) {
return [
'user_id' => Yii::$app->user->id,
'ip' => $_SERVER['REMOTE_ADDR'],
'is_trusted' => $session->get('is_trusted', false),
];
}
|
|
Public Methods
Protected Methods
Method Details
composeFields()
protected method
Composes storage field set for session writing.
getUseCustomStorage()
public method
This method overrides the parent implementation and always returns true.
Property Details
$readCallback public property
a callback that will be called during session data reading.
The signature of the callback should be as follows:
function ($fields)
where $fields is the storage field set for read session and $session is this session instance.
If callback returns an array, it will be merged into the session data.
For example:
php
function ($fields) {
return [
'expireDate' => Yii::$app->formatter->asDate($fields['expire']),
];
}
$writeCallback public property
a callback that will be called during session data writing.
The signature of the callback should be as follows:
function ($session)
where $session is this session instance, this variable can be used to retrieve session data.
Callback should return the actual fields set, which should be saved into the session storage.
For example:
php
function ($session) {
return [
'user_id' => Yii::$app->user->id,
'ip' => $_SERVER['REMOTE_ADDR'],
'is_trusted' => $session->get('is_trusted', false),
];
}