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

RendererAwareTrait   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 37
wmc 4
lcom 1
cbo 1
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getRenderer() 0 8 2
A setRenderer() 0 8 2
getOwner() 0 1 ?
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