docs/session.md

Summary

Maintainability
Test Coverage
:::{php:namespace} Atk4\Ui
:::

# Session Trait

:::{php:trait} SessionTrait
:::

## Introduction

SessionTrait is a simple way to let object store relevant data in the session. Specifically used in ATK UI
some objects want to memorize data. (see https://github.com/atk4/ui/blob/develop/src/Wizard.php#L12)

You would need 3 things. First make use of session trait:

```
use \Atk4\Ui\SessionTrait;
```

next you may memorize any value, which will be stored independently from any other object (even of a same class):

```
$this->memorize('dsn', $dsn);
```

Later when you need the value, you can simply recall it:

```
$dsn = $this->recall('dsn');
```

## Properties

:::{php:attr} rootNamespace
Internal property to make sure that all session data will be stored in one
"container" (array key).
:::

## Methods

:::{php:method} startSession()
Create new session.
:::

:::{php:method} closeSession()
Close existing session.
:::

:::{php:method} memorize($key, $value)
Remember data in object-relevant session data.
:::

:::{php:method} learn($key, $default = null)
Similar to memorize, but if value for key exist, will return it.
:::

:::{php:method} recall($key, $default = null)
Returns session data for this object. If not previously set, then $default
is returned.
:::

:::{php:method} forget($key = null)
Forget session data for arg $key. If $key is omitted will forget all
associated session data.
:::