Fr3nch13/CakePHP Utilities

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

$_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.

$_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
$this

delete()

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
throws
InvalidArgumentException
Return values
mixed

Configuration data at the named key

read()

Read user record from session.

public read() : ArrayAccess|array<string|int, mixed>|null
Tags
psalm-suppress

InvalidReturnType

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. If false deletes currently set URL.

Tags
inheritDoc
Return values
array<string|int, mixed>|string|null

setConfig()

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
throws
CakeException

When trying to set a key that is invalid.

Return values
$this

write()

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
throws
CakeException

if attempting to clobber existing config

_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.

Tags
throws
CakeException

if attempting to clobber existing config


        
On this page

Search results