Passed
Push — master ( e5c4f5...cb56ad )
by Paul
03:27
created

Reviews::__toString()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 0
cts 3
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace GeminiLabs\SiteReviews;
4
5
use ArrayObject;
6
use GeminiLabs\SiteReviews\Defaults\SiteReviewsDefaults;
7
use GeminiLabs\SiteReviews\Modules\Html\Partials\SiteReviews as SiteReviewsPartial;
8
use GeminiLabs\SiteReviews\Modules\Html\ReviewsHtml;
9
10
class Reviews extends ArrayObject
11
{
12
	/**
13
	 * @var array
14
	 */
15
	public $args;
16
17
	/**
18
	 * @var int
19
	 */
20
	public $max_num_pages;
21
22
	/**
23
	 * @var array
24
	 */
25
	public $results;
26
27
	public function __construct( array $reviews, $maxPageCount, array $args )
28
	{
29
		$this->args = $args;
30
		$this->max_num_pages = $maxPageCount;
31
		$this->results = $reviews;
32
		parent::__construct( $reviews, ArrayObject::STD_PROP_LIST|ArrayObject::ARRAY_AS_PROPS );
33
	}
34
35
	/**
36
	 * @return mixed
37
	 */
38
	public function __get( $key )
39
	{
40
		return property_exists( $this, $key )
41
			? $this->$key
42
			: null;
43
	}
44
45
	/**
46
	 * @return string
47
	 */
48
	public function __toString()
49
	{
50
		return (string)$this->build();
51
	}
52
53
	/**
54
	 * @return ReviewsHtml
55
	 */
56
	public function build()
57
	{
58
		$args = glsr( SiteReviewsDefaults::class )->merge( $this->args );
59
		return glsr( SiteReviewsPartial::class )->build( $args, $this );
60
	}
61
62
	/**
63
	 * @return void
64
	 */
65
	public function render()
66
	{
67
		echo $this->build();
68
	}
69
}
70