Session Storage

Zend Framework comes with a standard set of storage classes which are ready for you to use. Storage handlers is the intermediary between when the session starts and when the session writes and closes. The default session storage is Zend\Session\Storage\SessionArrayStorage.

Array Storage

Zend\Session\Storage\ArrayStorage provides a facility to store all information in an ArrayObject. This storage method is likely incompatible with 3rd party libraries and all properties will be inaccessible through the $_SESSION property. Additionally ArrayStorage will not automatically repopulate the storage container in the case of each new request and would have to manually be re-populated.

Basic Usage

A basic example is one like the following:

1
2
3
4
5
6
7
use Zend\Session\Storage\ArrayStorage;
use Zend\Session\SessionManager;

$populateStorage = array('foo' => 'bar');
$storage         = new ArrayStorage($populateStorage);
$manager         = new SessionManager();
$manager->setStorage($storage);

Session Storage

Zend\Session\Storage\SessionStorage replaces $_SESSION providing a facility to store all information in an ArrayObject. This means that it may not be compatible with 3rd party libraries. Although information stored in the $_SESSION superglobal should be available in other scopes.

Basic Usage

A basic example is one like the following:

1
2
3
4
5
use Zend\Session\Storage\SessionStorage;
use Zend\Session\SessionManager;

$manager = new SessionManager();
$manager->setStorage(new SessionStorage());

Session Array Storage

Zend\Session\Storage\SessionArrayStorage provides a facility to store all information directly in the $_SESSION superglobal. This storage class provides the most compatibility with 3rd party libraries and allows for directly storing information into $_SESSION.

Basic Usage

A basic example is one like the following:

1
2
3
4
5
use Zend\Session\Storage\SessionArrayStorage;
use Zend\Session\SessionManager;

$manager = new SessionManager();
$manager->setStorage(new SessionArrayStorage());

Custom Storage

In the event that you prefer a different type of storage; to create a new custom storage container, you must implement Zend\Session\Storage\StorageInterface which is mostly in implementing ArrayAccess, Traversable, Serializable and Countable. StorageInterface defines some additional functionality that must be implemented.

Table Of Contents

Previous topic

Session Save Handlers

Next topic

Session Validators

This Page

Note: You need to stay logged into your GitHub account to contribute to the documentation.

Edit this document

Edit this document

The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.

  1. Login with your GitHub account.
  2. Go to Session Storage on GitHub.
  3. Edit file contents using GitHub's text editor in your web browser
  4. Fill in the Commit message text box at the end of the page telling why you did the changes. Press Propose file change button next to it when done.
  5. On Send a pull request page you don't need to fill in text anymore. Just press Send pull request button.
  6. Your changes are now queued for review under project's Pull requests tab on GitHub.