yii\mongodb\Session - Yii2 类参考手册

Class yii\mongodb\Session

Inheritanceyii\mongodb\Session » yii\web\MultiFieldSession » yii\web\Session » yii\base\Component » yii\base\BaseObject
ImplementsArrayAccess, Countable, IteratorAggregate, yii\base\Configurable
Available since version2.0

Session extends yii\web\Session by using MongoDB as session data storage.

By default, Session stores session data in a collection named 'session' inside the default database. This collection is better to be pre-created with fields 'id' and 'expire' indexed. The collection name can be changed by setting $sessionCollection.

The following example shows how you can configure the application to use Session: Add the following to your application config under components:

'session' => [
    'class' => 'yii\mongodb\Session',
    // 'db' => 'mymongodb',
    // 'sessionCollection' => 'my_session',
]

Session extends yii\web\MultiFieldSession, thus it allows saving extra fields into the $sessionCollection. Refer to yii\web\MultiFieldSession for more details.

Tip: you can use MongoDB TTL index for the session garbage collection for performance saving, in this case you should set yii\mongodb\Session::$gCProbability to 0.

Public Properties

隐藏继承的属性 Hide inherited properties

属性Property类型 Type简介 Description定义在 Defined By
$allFlashes array Flash messages (key => message or key => [message1, message2]). yii\web\Session
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$cacheLimiter string yii\web\Session
$cookieParams array The session cookie parameters. yii\web\Session
$count integer The number of session variables yii\web\Session
$db yii\mongodb\Connection|array|string The MongoDB connection object or the application component ID of the MongoDB connection. yii\mongodb\Session
$flash string The key identifying the flash message. yii\web\Session
$flashParam string The name of the session variable that stores the flash message data. yii\web\Session
$gCProbability float The probability (percentage) that the GC (garbage collection) process is started on every session initialization. yii\web\Session
$handler SessionHandlerInterface|array An object implementing the SessionHandlerInterface or a configuration array. yii\web\Session
$hasSessionId boolean Whether the current request has sent the session ID. yii\web\Session
$id string The current session ID yii\web\Session
$isActive boolean Whether the session has started yii\web\Session
$iterator yii\web\SessionIterator An iterator for traversing the session variables. yii\web\Session
$name string The current session name yii\web\Session
$readCallback callable A callback that will be called during session data reading. yii\web\MultiFieldSession
$savePath string The current session save path, defaults to '/tmp'. yii\web\Session
$sessionCollection string|array The name of the MongoDB collection that stores the session data. yii\mongodb\Session
$timeout integer The number of seconds after which data will be seen as 'garbage' and cleaned up. yii\web\Session
$useCookies boolean|null The value indicating whether cookies should be used to store session IDs. yii\web\Session
$useCustomStorage boolean Whether to use custom storage. yii\web\MultiFieldSession
$useTransparentSessionID boolean Whether transparent sid support is enabled or not, defaults to false. yii\web\Session
$writeCallback callable A callback that will be called during session data writing. yii\web\MultiFieldSession

Protected Properties

隐藏继承的属性 Hide inherited properties

属性Property类型 Type简介 Description定义在 Defined By
$fields array Session fields to be written into session table columns yii\mongodb\Session

Public Methods

隐藏继承的方法 Hide inherited methods

方法 Method简介 Description定义在 Defined By
__call() Calls the named method which is not a class method. yii\base\BaseObject
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of an object property. yii\base\BaseObject
__isset() Checks if a property is set, i.e. defined and not null. yii\base\BaseObject
__set() Sets value of an object property. yii\base\BaseObject
__unset() Sets an object property to null. yii\base\BaseObject
addFlash() Adds a flash message. yii\web\Session
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
canGetProperty() Returns a value indicating whether a property can be read. yii\base\BaseObject
canSetProperty() Returns a value indicating whether a property can be set. yii\base\BaseObject
className() Returns the fully qualified name of this class. yii\base\BaseObject
close() Ends the current session and store session data. yii\web\Session
closeSession() Session close handler. yii\web\Session
count() Returns the number of items in the session. yii\web\Session
destroy() Frees all session variables and destroys all data registered to a session. yii\web\Session
destroySession() Session destroy handler. yii\mongodb\Session
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
gcSession() Session GC (garbage collection) handler. yii\mongodb\Session
get() Returns the session variable value with the session variable name. yii\web\Session
getAllFlashes() Returns all flash messages. yii\web\Session
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
getCacheLimiter() Returns current cache limiter yii\web\Session
getCookieParams() yii\web\Session
getCount() Returns the number of items in the session. yii\web\Session
getFlash() Returns a flash message. yii\web\Session
getGCProbability() yii\web\Session
getHasSessionId() Returns a value indicating whether the current request has sent the session ID. yii\web\Session
getId() Gets the session ID. yii\web\Session
getIsActive() yii\web\Session
getIterator() Returns an iterator for traversing the session variables. yii\web\Session
getName() Gets the name of the current session. yii\web\Session
getSavePath() Gets the current session save path. yii\web\Session
getTimeout() yii\web\Session
getUseCookies() Returns the value indicating whether cookies should be used to store session IDs. yii\web\Session
getUseCustomStorage() Returns a value indicating whether to use custom session storage. yii\web\MultiFieldSession
getUseTransparentSessionID() yii\web\Session
has() yii\web\Session
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasFlash() Returns a value indicating whether there are flash messages associated with the specified key. yii\web\Session
hasMethod() Returns a value indicating whether a method is defined. yii\base\BaseObject
hasProperty() Returns a value indicating whether a property is defined. yii\base\BaseObject
init() Initializes the Session component. yii\mongodb\Session
off() Detaches an existing event handler from this component. yii\base\Component
offsetExists() This method is required by the interface ArrayAccess. yii\web\Session
offsetGet() This method is required by the interface ArrayAccess. yii\web\Session
offsetSet() This method is required by the interface ArrayAccess. yii\web\Session
offsetUnset() This method is required by the interface ArrayAccess. yii\web\Session
on() Attaches an event handler to an event. yii\base\Component
open() Starts the session. yii\web\Session
openSession() Session open handler. yii\web\Session
readSession() Session read handler. yii\mongodb\Session
regenerateID() Updates the current session ID with a newly generated one. yii\mongodb\Session
remove() Removes a session variable. yii\web\Session
removeAll() Removes all session variables. yii\web\Session
removeAllFlashes() Removes all flash messages. yii\web\Session
removeFlash() Removes a flash message. yii\web\Session
set() Adds a session variable. yii\web\Session
setCacheLimiter() Set cache limiter yii\web\Session
setCookieParams() Sets the session cookie parameters. yii\web\Session
setFlash() Sets a flash message. yii\web\Session
setGCProbability() yii\web\Session
setHasSessionId() Sets the value indicating whether the current request has sent the session ID. yii\web\Session
setId() Sets the session ID. yii\web\Session
setName() Sets the name for the current session. yii\web\Session
setSavePath() Sets the current session save path. yii\web\Session
setTimeout() yii\web\Session
setUseCookies() Sets the value indicating whether cookies should be used to store session IDs. yii\web\Session
setUseTransparentSessionID() yii\web\Session
trigger() Triggers an event. yii\base\Component
writeSession() Session write handler. yii\mongodb\Session

Protected Methods

隐藏继承的方法 Hide inherited methods

方法 Method简介 Description定义在 Defined By
composeFields() Composes storage field set for session writing. yii\web\MultiFieldSession
extractData() Extracts session data from storage field set. yii\web\MultiFieldSession
freeze() If session is started it's not possible to edit session ini settings. In PHP7.2+ it throws exception. yii\web\Session
registerSessionHandler() Registers session handler. yii\web\Session
unfreeze() Starts session and restores data from temporary variable yii\web\Session
updateFlashCounters() Updates the counters for flash messages and removes outdated flash messages. yii\web\Session

属性详情 Property Details

$db public property

The MongoDB connection object or the application component ID of the MongoDB connection. After the Session object is created, if you want to change this property, you should only assign it with a MongoDB connection object. Starting from version 2.0.2, this can also be a configuration array for creating the object.

$fields protected property (available since version 2.1.8)

Session fields to be written into session table columns

protected array $fields = []
$sessionCollection public property

The name of the MongoDB collection that stores the session data. Please refer to yii\mongodb\Connection::getCollection() on how to specify this parameter. This collection is better to be pre-created with fields 'id' and 'expire' indexed.

public string|array $sessionCollection 'session'

方法详情 Method Details

destroySession() public method

Session destroy handler.

Do not call this method directly.

public boolean destroySession ( $id )
$id string

Session ID

return boolean

Whether session is destroyed successfully

gcSession() public method

Session GC (garbage collection) handler.

Do not call this method directly.

public boolean gcSession ( $maxLifetime )
$maxLifetime integer

The number of seconds after which data will be seen as 'garbage' and cleaned up.

return boolean

Whether session is GCed successfully

init() public method

Initializes the Session component.

This method will initialize the $db property to make sure it refers to a valid MongoDB connection.

public void init ( )
throws yii\base\InvalidConfigException

if $db is invalid.

readSession() public method

Session read handler.

Do not call this method directly.

public string readSession ( $id )
$id string

Session ID

return string

The session data

regenerateID() public method

Updates the current session ID with a newly generated one.

Please refer to http://php.net/session_regenerate_id for more details.

public void regenerateID ( $deleteOldSession false )
$deleteOldSession boolean

Whether to delete the old associated session file or not.

writeSession() public method

Session write handler.

Do not call this method directly.

public boolean writeSession ( $id, $data )
$id string

Session ID

$data string

Session data

return boolean

Whether session write is successful