Results   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 14
dl 0
loc 50
ccs 9
cts 9
cp 1
rs 10
c 0
b 0
f 0
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 16 4
1
<?php declare(strict_types=1);
2
/**
3
 * This file is part of the Tmdb package.
4
 *
5
 * (c) Vincent Faliès <[email protected]>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 *
10
 * @author Vincent Faliès <[email protected]>
11
 * @copyright Copyright (c) 2017
12
 */
13
14
15
namespace VfacTmdb\Abstracts;
16
17
use VfacTmdb\Exceptions\NotFoundException;
18
use VfacTmdb\Interfaces\Results\ResultsInterface;
19
use VfacTmdb\Interfaces\TmdbInterface;
20
21
/**
22
 * Abstract results class
23
 * @package Tmdb
24
 * @author Vincent Faliès <[email protected]>
25
 * @copyright Copyright (c) 2017
26
 */
27
abstract class Results implements ResultsInterface
28
{
29
    /**
30
     * Properties to ignore in object control validation in constructor
31
     * @var array
32
     */
33
    protected $property_blacklist = ['property_blacklist', 'conf', 'data', 'logger', 'tmdb', 'params', 'element_trait', 'tvepisode_trait'];
34
    /**
35
     * Logger object
36
     * @var \Psr\Log\LoggerInterface
37
     */
38
    protected $logger = null;
39
    /**
40
     * Configuration array
41
     * @var \stdClass
42
     */
43
    protected $conf = null;
44
    /**
45
     * Tmdb object
46
     * @var TmdbInterface
47
     */
48
    protected $tmdb = null;
49
    /**
50
     * Data object
51
     * @var \stdClass
52
     */
53
    protected $data = null;
54
55
    /**
56
     * Constructor
57
     * @param TmdbInterface $tmdb
58
     * @param \stdClass $result
59
     * @throws NotFoundException
60
     */
61 603
    public function __construct(TmdbInterface $tmdb, \stdClass $result)
62
    {
63 603
        $this->logger = $tmdb->getLogger();
64
65
        // Valid input object
66 603
        $properties = get_object_vars($this);
67 603
        foreach (array_keys($properties) as $property) {
68 603
            if (!in_array($property, $this->property_blacklist) && !property_exists($result, $property)) {
69 408
                throw new NotFoundException($property);
70
            }
71
        }
72
73
        // Configuration
74 585
        $this->conf = $tmdb->getConfiguration();
75 585
        $this->data = $result;
76 585
        $this->tmdb = $tmdb;
77 585
    }
78
}
79