FlashManager::addMessage()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 5
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
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