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.
Since: 2.0.6
Author: Paul Klimov ([email protected])
Inheritance: extends yii\web\Session
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

Method Description
getUseCustomStorage ( ) : boolean Returns a value indicating whether to use custom session storage.

Protected Methods

Method Description
composeFields ( string $id, string $data ) : array Composes storage field set for session writing.
extractData ( array $fields ) : string Extracts session data from storage field set.

Method Details

composeFields() protected method

Composes storage field set for session writing.
protected composeFields ( string $id, string $data ) : array
$id string session id
$data string session data
return array storage fields

extractData() protected method

Extracts session data from storage field set.
protected extractData ( array $fields ) : string
$fields array storage fields.
return string session data.

getUseCustomStorage() public method

This method overrides the parent implementation and always returns true.
public getUseCustomStorage ( ) : boolean
return boolean whether to use custom storage.

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']), ]; }
public $readCallback

$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), ]; }
public $writeCallback