FlashManager   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 17
dl 0
loc 39
rs 10
c 0
b 0
f 0
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A setData() 0 4 1
A addErrors() 0 5 1
A addMessage() 0 5 1
A getData() 0 6 1
1
<?php
2
3
namespace Jidaikobo\Kontiki\Managers;
4
5
use Aura\Session\Session;
6
7
class FlashManager
8
{
9
    private Session $session;
10
    private string $segmentName;
11
12
    public function __construct(
13
        Session $session,
14
        string $segmentName = 'jidaikobo\kontiki\flash'
15
    ) {
16
        $this->session = $session;
17
        $this->segmentName = $segmentName;
18
    }
19
20
    public function setData(string $type, $data): void
21
    {
22
        $segment = $this->session->getSegment($this->segmentName);
23
        $segment->set($type, $data);
24
    }
25
26
    public function getData(string $type, $default = null)
27
    {
28
        $segment = $this->session->getSegment($this->segmentName);
29
        $data = $segment->get($type, $default);
30
        $segment->set($type, null); // 取得後に削除
31
        return $data;
32
    }
33
34
    public function addMessage(string $type, string $message): void
35
    {
36
        $existingMessages = $this->getData($type, []);
37
        $existingMessages[] = $message;
38
        $this->setData($type, $existingMessages);
39
    }
40
41
    public function addErrors(array $errors): void
42
    {
43
        $existingErrors = $this->getData('errors', []);
44
        $mergedErrors = array_merge_recursive($existingErrors, $errors);
45
        $this->setData('errors', $mergedErrors);
46
    }
47
}
48