mipotech/yii2-persistent-session

A simple class for implementing persistent, server-side sessions ("server-side cookies")

1.0.3 2018-05-02 14:40 UTC

This package is auto-updated.

Last update: 2024-04-06 23:02:28 UTC


README

This package provides a simple way to implement persistent sessions, otherwise known as "server-side cookies".

Installation

The preferred way to install this extension is through composer.

Simply add this line:

"mipotech/yii2-persistent-session": "*",

to the require section of your composer.json file and perform a composer update.

Configuration

Add persistentSession as an application component in @app/config/web.php:

'components' => [
    ...
    'persistentSession' => [
        /* Required settings */
        'class' => 'mipotech\persistentsession\PersistentSession',
        
        /* Optional settings */
        //'db' => '...',            // MongoDB application component. Defaults to 'mongodb'
        //'collection' => '...',    // The name of the collection to store the session data. Defaults to 'persistent_session'
        //'cookieClass' => '...'    // The class to used to generate a new cookie. Defaults to 'yii\web\Cookie'
        //'cookieKey' => '...',     // The cookie key to use for identifying the persistent session. Defaults to 'session-id'
        //'cookieParams' => '...',  // The default cookie parameters. Defaults to ['httpOnly' => true, 'secure' => true]
        //'uniqidPrefix' => '...',  // The prefix to use for generating a new session identifier. Defaults to ''
    ]
    ...
]

That's it. The package is set up and ready to go.

Usage

The functionality of this component is intended to be as close as possible to native Yii2 sessions (API documentation and user guide).

Opening and Closing Sessions

$persistentSession = Yii::$app->persistentSession;

// check if a session is already open
if ($persistentSession->isActive) ...

// open a session
$persistentSession->open();

// destroys all data registered to a session.
$persistentSession->destroy();

Accessing Session Data

$persistentSession = Yii::$app->persistentSession;

// get a session variable.
$language = $persistentSession->get('language');

// set a session variable. The following usages are equivalent:
$persistentSession->set('language', 'en-US');

// remove a session variable. The following usages are equivalent:
$persistentSession->remove('language');

// check if a session variable exists. The following usages are equivalent:
if ($persistentSession->has('language')) ...