Stats   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 14
dl 0
loc 29
rs 10
c 1
b 0
f 0
wmc 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 2
A toArray() 0 3 1
A dataOrZero() 0 3 2
1
<?php
2
3
4
namespace App\Src\UseCases\Domain\Users;
5
6
7
class Stats
8
{
9
    private $stats;
10
11
    private $fields = [
12
        'number_contributions',
13
        'number_questions',
14
        'number_answers',
15
        'number_votes',
16
        'number_validations',
17
        'number_wiki_edit',
18
        'number_contributions_last_30_days'
19
    ];
20
21
    public function __construct(array $data)
22
    {
23
        foreach ($this->fields as $field){
24
            $this->stats[$field] = $this->dataOrZero($field, $data);
25
        }
26
    }
27
28
    private function dataOrZero(string $key, array $data):int
29
    {
30
        return isset($data[$key]) ? $data[$key] : 0;
31
    }
32
33
    public function toArray():array
34
    {
35
        return $this->stats;
36
    }
37
}
38