MovieCredit::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 3
dl 0
loc 6
ccs 5
cts 5
cp 1
crap 1
rs 10
c 0
b 0
f 0
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\Items;
16
17
use VfacTmdb\Results;
18
use VfacTmdb\Interfaces\TmdbInterface;
19
20
/**
21
 * Movie Credit class
22
 * @package Tmdb
23
 * @author Vincent Faliès <[email protected]>
24
 * @copyright Copyright (c) 2017
25
 */
26
class MovieCredit
27
{
28
    /**
29
     * Tmdb object
30
     * @var TmdbInterface
31
     */
32
    private $tmdb = null;
33
    /**
34
     * Logger object
35
     * @var \Psr\Log\LoggerInterface
36
     */
37
    protected $logger = null;
38
    /**
39
     * Params
40
     * @var array
41
     */
42
    protected $params = null;
43
    /**
44
     * Data
45
     * @var \stdClass
46
     */
47
    protected $data = null;
48
    /**
49
     * Crew
50
     * @var \stdClass
51
     */
52
    protected $crew;
53
    /**
54
     * Options array
55
     * @var array
56
     */
57
    protected $options;
58
59
    /**
60
     * Constructor
61
     * @param TmdbInterface $tmdb
62
     * @param int $movie_id
63
     * @param array $options
64
     */
65 30
    public function __construct(TmdbInterface $tmdb, int $movie_id, array $options = array())
66
    {
67 30
        $this->tmdb    = $tmdb;
68 30
        $this->logger  = $tmdb->getLogger();
69 30
        $this->data    = $this->tmdb->getRequest('movie/' . $movie_id . '/credits');
70 30
        $this->options = $options;
71 30
    }
72
73
    /**
74
     * Crew
75
     * @return \Generator|Results\Crew
76
     */
77 3
    public function getCrew() : \Generator
78
    {
79 3
        if (!empty($this->data->crew)) {
80 3
            foreach ($this->data->crew as $c) {
81 3
                $crew = new Results\Crew($this->tmdb, $c);
82 3
                yield $crew;
83
            }
84
        }
85 3
    }
86
87
    /**
88
     * Cast
89
     * @return \Generator|Results\Cast
90
     */
91 27
    public function getCast() : \Generator
92
    {
93 27
        if (!empty($this->data->cast)) {
94 27
            foreach ($this->data->cast as $c) {
95 27
                $cast = new Results\Cast($this->tmdb, $c);
96 27
                yield $cast;
97
            }
98
        }
99 3
    }
100
}
101