PageVisitsStatisticsReport::firstVisitTo()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 2
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 5
rs 10
1
<?php declare(strict_types=1);
2
3
namespace Stratadox\CardGame\ReadModel;
4
5
final class PageVisitsStatisticsReport
6
{
7
    private $visitorsFrom = [];
8
    private $visitsFrom = [];
9
    private $visitorsOnPage = [];
10
    private $visitsToPage = [];
11
12
    public function visitorsFrom(string $source): int
13
    {
14
        return $this->visitorsFrom[$source] ?? 0;
15
    }
16
17
    public function visitsFrom(string $source): int
18
    {
19
        return $this->visitsFrom[$source] ?? 0;
20
    }
21
22
    public function visitorsOnPage(string $page): int
23
    {
24
        return $this->visitorsOnPage[$page] ?? 0;
25
    }
26
27
    public function visitsToPage(string $page): int
28
    {
29
        return $this->visitsToPage[$page] ?? 0;
30
    }
31
32
    public function visit(string $page, string $source): void
33
    {
34
        if (!isset($this->visitsToPage[$page])) {
35
            $this->visitsToPage[$page] = 0;
36
        }
37
        if (!isset($this->visitsFrom[$source])) {
38
            $this->visitsFrom[$source] = 0;
39
        }
40
        $this->visitsToPage[$page]++;
41
        $this->visitsFrom[$source]++;
42
    }
43
44
    public function firstVisitTo(string $page): void
45
    {
46
        $this->visitorsOnPage[$page] = isset($this->visitorsOnPage[$page]) ?
47
            $this->visitorsOnPage[$page] + 1 :
48
            1;
49
    }
50
51
    public function firstVisitFrom(string $source): void
52
    {
53
        $this->visitorsFrom[$source] = isset($this->visitorsFrom[$source]) ?
54
            $this->visitorsFrom[$source] + 1 :
55
            1;
56
    }
57
}
58