SessionStorage
in package
implements
StorageInterface
uses
InstanceConfigTrait
Session based persistent storage for authenticated user record.
Table of Contents
Interfaces
- StorageInterface
- Describes the methods that any class representing an Auth data storage should comply with.
Properties
- $_config : array<string, mixed>
- Runtime config
- $_configInitialized : bool
- Whether the config property has already been configured with defaults
- $_defaultConfig : array<string, mixed>
- Default configuration for this class.
- $_session : Session
- Session object.
- $_user : ArrayAccess|array<string|int, mixed>|false|null
- User record.
Methods
- __construct() : mixed
- Constructor.
- configShallow() : $this
- Merge provided config with existing config. Unlike `config()` which does a recursive merge for nested keys, this method does a simple merge.
- delete() : void
- Delete user record from session.
- getConfig() : mixed
- Returns the config.
- getConfigOrFail() : mixed
- Returns the config for this specific key.
- read() : ArrayAccess|array<string|int, mixed>|null
- Read user record from session.
- redirectUrl() : array<string|int, mixed>|string|null
- Get/set redirect URL.
- setConfig() : $this
- Sets the config.
- write() : void
- Write user record to session.
- _configDelete() : void
- Deletes a single config key.
- _configRead() : mixed
- Reads a config key.
- _configWrite() : void
- Writes a config key.
Properties
$_config
Runtime config
protected
array<string, mixed>
$_config
= []
$_configInitialized
Whether the config property has already been configured with defaults
protected
bool
$_configInitialized
= false
$_defaultConfig
Default configuration for this class.
protected
array<string, mixed>
$_defaultConfig
= ['key' => 'Auth.User', 'redirect' => 'Auth.redirect']
Keys:
-
key
- Session key used to store user record. -
redirect
- Session key used to store redirect URL.
$_session
Session object.
protected
Session
$_session
$_user
User record.
protected
ArrayAccess|array<string|int, mixed>|false|null
$_user
Stores user record array if fetched from session or false if session does not have user record.
Methods
__construct()
Constructor.
public
__construct(ServerRequest $request, Response $response[, array<string, mixed> $config = [] ]) : mixed
Parameters
- $request : ServerRequest
-
Request instance.
- $response : Response
-
Response instance.
- $config : array<string, mixed> = []
-
Configuration list.
configShallow()
Merge provided config with existing config. Unlike `config()` which does a recursive merge for nested keys, this method does a simple merge.
public
configShallow(array<string, mixed>|string $key[, mixed|null $value = null ]) : $this
Setting a specific value:
$this->configShallow('key', $value);
Setting a nested value:
$this->configShallow('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Parameters
- $key : array<string, mixed>|string
-
The key to set, or a complete array of configs.
- $value : mixed|null = null
-
The value to set.
Return values
$thisdelete()
Delete user record from session.
public
delete() : void
The session id is also renewed to help mitigate issues with session replays.
getConfig()
Returns the config.
public
getConfig([string|null $key = null ][, mixed $default = null ]) : mixed
Usage
Reading the whole config:
$this->getConfig();
Reading a specific value:
$this->getConfig('key');
Reading a nested value:
$this->getConfig('some.nested.key');
Reading with default value:
$this->getConfig('some-key', 'default-value');
Parameters
- $key : string|null = null
-
The key to get or null for the whole config.
- $default : mixed = null
-
The return value when the key does not exist.
Return values
mixed —Configuration data at the named key or null if the key does not exist.
getConfigOrFail()
Returns the config for this specific key.
public
getConfigOrFail(string $key) : mixed
The config value for this key must exist, it can never be null.
Parameters
- $key : string
-
The key to get.
Tags
Return values
mixed —Configuration data at the named key
read()
Read user record from session.
public
read() : ArrayAccess|array<string|int, mixed>|null
Tags
Return values
ArrayAccess|array<string|int, mixed>|null —User record if available else null.
redirectUrl()
Get/set redirect URL.
public
redirectUrl([mixed $url = null ]) : array<string|int, mixed>|string|null
Parameters
- $url : mixed = null
-
Redirect URL. If
null
returns current URL. Iffalse
deletes currently set URL.
Tags
Return values
array<string|int, mixed>|string|nullsetConfig()
Sets the config.
public
setConfig(array<string, mixed>|string $key[, mixed|null $value = null ][, bool $merge = true ]) : $this
Usage
Setting a specific value:
$this->setConfig('key', $value);
Setting a nested value:
$this->setConfig('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Parameters
- $key : array<string, mixed>|string
-
The key to set, or a complete array of configs.
- $value : mixed|null = null
-
The value to set.
- $merge : bool = true
-
Whether to recursively merge or overwrite existing config, defaults to true.
Tags
Return values
$thiswrite()
Write user record to session.
public
write(ArrayAccess|array<string|int, mixed> $user) : void
The session id is also renewed to help mitigate issues with session replays.
Parameters
- $user : ArrayAccess|array<string|int, mixed>
-
User record.
_configDelete()
Deletes a single config key.
protected
_configDelete(string $key) : void
Parameters
- $key : string
-
Key to delete.
Tags
_configRead()
Reads a config key.
protected
_configRead(string|null $key) : mixed
Parameters
- $key : string|null
-
Key to read.
_configWrite()
Writes a config key.
protected
_configWrite(array<string, mixed>|string $key, mixed $value[, string|bool $merge = false ]) : void
Parameters
- $key : array<string, mixed>|string
-
Key to write to.
- $value : mixed
-
Value to write.
- $merge : string|bool = false
-
True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.