Reference

Session Config

laminas-session comes with a standard set of config classes, allowing setting where a cookie lives, session lifetime, and even configuration of ext/session when using Laminas\Session\Config\SessionConfig.

Standard Config

Laminas\Session\Config\StandardConfig provides the base interface for configuring sessions when not leveraging ext/session. This is utilized more for specialized cases, such as when you might have session management done by another system, or when testing.

Basic Configuration Options

The following configuration options are defined by Laminas\Session\Config\StandardConfig.

Option Data Type Description
cache_expire integer Specifies time-to-live for cached session pages in minutes.
cookie_domain string Specifies the domain to set in the session cookie.
cookie_httponly boolean Marks the cookie as accessible only through the HTTP protocol.
cookie_lifetime integer Specifies the lifetime of the cookie in seconds which is sent to the browser.
cookie_path string Specifies path to set in the session cookie.
cookie_samesite string Specifies whether cookies should be sent along with cross-site requests. (Since 2.11.0)
cookie_secure boolean Specifies whether cookies should only be sent over secure connections.
entropy_length integer Specifies the number of bytes which will be read from the file specified in entropy_file. Removed in PHP 7.1.0.
entropy_file string Defines a path to an external resource (file) which will be used as an additional entropy. Removed in PHP 7.1.0.
gc_maxlifetime integer Specifies the number of seconds after which data will be seen as ‘garbage’.
gc_divisor integer Defines the probability that the gc process is started on every session initialization.
gc_probability integer Defines the probability that the gc process is started on every session initialization.
hash_function integer Defines which built-in hash algorithm is used. Removed in PHP 7.1.0.
hash_bits_per_character integer Defines how many bits are stored in each character when converting the binary hash data. Removed in PHP 7.1.0.
name string Specifies the name of the session which is used as cookie name.
remember_me_seconds integer Specifies how long to remember the session before clearing data.
save_path string Defines the argument which is passed to the save handler.
use_cookies boolean Specifies whether the module will use cookies to store the session id.

Basic Usage

use Laminas\Session\Config\StandardConfig;
use Laminas\Session\SessionManager;

$config = new StandardConfig();
$config->setOptions([
    'remember_me_seconds' => 1800,
    'name'                => 'laminas',
]);
$manager = new SessionManager($config);

Session Config

Laminas\Session\Config\SessionConfig provides an interface for configuring sessions that leverage PHP's ext/session. Most configuration options configure either the Laminas\Session\Storage OR configure ext/session directly.

Basic Configuration Options

The following configuration options are defined by Laminas\Session\Config\SessionConfig; note that it inherits all configuration from Laminas\Session\Config\StandardConfig.

Option Data Type Description
cache_limiter string Specifies the cache control method used for session pages.
hash_function string Allows you to specify the hash algorithm used to generate the session IDs.
php_save_handler string Defines the name of a PHP save_handler embedded into PHP.
serialize_handler string Defines the name of the handler which is used to serialize/deserialize data.
url_rewriter_tags string Specifies which HTML tags are rewritten to include session id if transparent sid enabled.
use_trans_sid boolean Whether transparent sid support is enabled or not.

Basic Usage

use Laminas\Session\Config\SessionConfig;
use Laminas\Session\SessionManager;

$config = new SessionConfig();
$config->setOptions([
    'phpSaveHandler' => 'redis',
    'savePath' => 'tcp://127.0.0.1:6379?weight=1&timeout=1',
]);
$manager = new SessionManager($config);

Service Manager Factory

laminas-session ships with a laminas-servicemanager factory which reads configuration data from the application configuration and injects a corresponding instance of Laminas\Session\Config\SessionConfig into the session manager automatically.

To use this factory, you first need to register it with the service manager by adding the appropriate factory definition:

'service_manager' => [
    'factories' => [
        'Laminas\Session\Config\ConfigInterface' => 'Laminas\Session\Service\SessionConfigFactory',
    ],
],

Automated factory registration

Starting with laminas-mvc v3, if you are using the component installer in your application, the above registration will be made automatically for you when you install laminas-session.

Then place your application's session configuration in the root-level configuration key session_config:

'session_config' => [
    'phpSaveHandler' => 'redis',
    'savePath' => 'tcp://127.0.0.1:6379?weight=1&timeout=1',
],

Any of the configuration options defined for SessionConfig can be used there, as well as the following factory-specific configuration options:

Option Data Type Description
config_class string Name of the class to use as the configuration container (Defaults to Laminas\Session\Config\SessionConfig)

Custom Configuration

In the event that you prefer to create your own session configuration; you must implement Laminas\Session\Config\ConfigInterface which contains the basic interface for items needed when implementing a session. This includes cookie configuration, lifetime, session name, save path, and an interface for getting and setting options.