Passed
Push — main ( 9ad958...bccbba )
by Andrey
72:16 queued 69:33
created

Logger   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 21
dl 0
loc 39
ccs 25
cts 25
cp 1
rs 10
c 1
b 0
f 0
wmc 11

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setLogger() 0 3 1
A log() 0 5 1
B logProcess() 0 25 9
1
<?php
2
3
namespace Helldar\LaravelLangPublisher\Concerns;
4
5
use Helldar\Verbose\Facades\Log;
6
use Helldar\Verbose\Services\Logger as Service;
7
8
trait Logger
9
{
10 15
    protected function setLogger(): void
11
    {
12 15
        Service::io($this->output);
13 15
    }
14
15 20
    protected function log(...$message): void
16
    {
17 20
        $value = $this->logProcess($message);
18
19 20
        Log::write($value);
20 20
    }
21
22 20
    protected function logProcess(array $values): string
23
    {
24 20
        foreach ($values as &$value) {
25 20
            switch (gettype($value)) {
26 20
                case 'boolean':
27 20
                case 'bool':
28 20
                    $value = $value ? '"true"' : '"false"';
29 20
                    break;
30
31 20
                case 'integer':
32 20
                case 'double':
33 12
                    $value = '"' . $value . '"';
34 12
                    break;
35
36 20
                case 'array':
37 20
                    $value = implode(', ', $value);
38 20
                    break;
39
40 20
                case 'NULL':
41 17
                    $value = '"null"';
42 17
                    break;
43
            }
44
        }
45
46 20
        return implode(' ', $values);
47
    }
48
}
49