Completed
Push — master ( aa5a0d...109f75 )
by Peter
05:58
created

RendererAwareTrait::getRenderer()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 8
rs 9.4285
cc 2
eloc 4
nc 2
nop 0
1
<?php
2
3
/*
4
 * To change this license header, choose License Headers in Project Properties.
5
 * To change this template file, choose Tools | Templates
6
 * and open the template in the editor.
7
 */
8
9
namespace Maslosoft\MiniView\Traits;
10
11
use Maslosoft\MiniView\Interfaces\OwnerAwareInterface;
12
use Maslosoft\MiniView\Interfaces\ViewRendererInterface;
13
use Maslosoft\MiniView\Renderers\PhpRenderer;
14
15
/**
16
 * RendererAwareTrait
17
 *
18
 * @author Piotr Maselkowski <pmaselkowski at gmail.com>
19
 */
20
trait RendererAwareTrait
21
{
22
23
	/**
24
	 *
25
	 * @var ViewRendererInterface
26
	 */
27
	private $renderer = null;
28
29
	/**
30
	 * Get renderer
31
	 * @return ViewRendererInterface
32
	 */
33
	public function getRenderer()
34
	{
35
		if (null === $this->renderer)
36
		{
37
			$this->setRenderer(new PhpRenderer());
38
		}
39
		return $this->renderer;
40
	}
41
42
	/**
43
	 * Set renderer
44
	 * @param ViewRendererInterface $renderer
45
	 */
46
	public function setRenderer(ViewRendererInterface $renderer)
47
	{
48
		if ($renderer instanceof OwnerAwareInterface)
49
		{
50
			$renderer->setOwner($this->getOwner());
51
		}
52
		$this->renderer = $renderer;
53
	}
54
55
	abstract public function getOwner();
56
}
57