Completed
Push — master ( 8ad0e5...05ab4d )
by Alec
04:24
created

Reportable::prepareForReport()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 0
nc 1
nop 0
dl 0
loc 2
ccs 1
cts 1
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 * User: alec
4
 * Date: 01.12.18
5
 * Time: 20:25
6
 */
7
8
namespace AlecRabbit\Tools\Reports\Traits;
9
10
use AlecRabbit\Tools\Reports\Contracts\ReportInterface;
11
use AlecRabbit\Tools\Reports\Factory;
12
13
trait Reportable
14
{
15
    /** @var ReportInterface|null */
16
    protected $reportObject;
17
18
    /**
19
     * @return ReportInterface
20
     * @throws \JakubOnderka\PhpConsoleColor\InvalidStyleException
21
     */
22 11
    public function getReport(): ReportInterface
23
    {
24 11
        if (null === $this->reportObject) {
25 11
            $this->prepareForReport();
26
            /** @var \AlecRabbit\Tools\Reports\Contracts\ReportableInterface $that */
27 11
            $that = $this; // for static analyzers
28 11
            $this->reportObject = Factory::makeReport($that);
29
        }
30
        return
31 11
            $this->reportObject;
32
    }
33
34 5
    public function resetReportObject(): void
35
    {
36 5
        $this->reportObject = null;
37 5
    }
38
39
    /**
40
     * Makes all necessary actions before report
41
     */
42 9
    protected function prepareForReport(): void
43
    {
44 9
    }
45
}
46