Completed
Push — master ( 9a7fc1...319399 )
by Peter
01:58
created

PhpRenderer   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 2
Bugs 1 Features 0
Metric Value
wmc 3
c 2
b 1
f 0
lcom 0
cbo 2
dl 0
loc 38
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A render() 0 23 3
1
<?php
2
3
/**
4
 * This software package is licensed under `AGPL, Commercial` license[s].
5
 *
6
 * @package maslosoft/miniview
7
 * @license AGPL, Commercial
8
 *
9
 * @copyright Copyright (c) Peter Maselkowski <[email protected]>
10
 *
11
 * @link http://maslosoft.com/miniview/
12
 */
13
14
namespace Maslosoft\MiniView\Renderers;
15
16
use Maslosoft\MiniView\Interfaces\OwnerAwareInterface;
17
use Maslosoft\MiniView\Interfaces\OwnerForwarderInterface;
18
use Maslosoft\MiniView\Interfaces\ViewRendererInterface;
19
20
/**
21
 * PhpRenderer
22
 *
23
 * @author Piotr Maselkowski <pmaselkowski at gmail.com>
24
 */
25
class PhpRenderer implements ViewRendererInterface, OwnerAwareInterface, OwnerForwarderInterface
26
{
27
28
	use \Maslosoft\MiniView\Traits\OwnerAwareTrait,
29
	  \Maslosoft\MiniView\Traits\OwnerForwarderTrait;
30
31
	/**
32
	 * Render php file
33
	 * @param string $_viewFile_
34
	 * @param mixed $_data_
35
	 * @param bool $_return_
36
	 * @return string
37
	 */
38
	public function render($_viewFile_, $_data_, $_return_ = false)
39
	{
40
		// we use special variable names here to avoid conflict when extracting data
41
		if (is_array($_data_))
42
		{
43
			extract($_data_, EXTR_PREFIX_SAME, 'data');
44
		}
45
		else
46
		{
47
			$data = $_data_;
48
		}
49
		if ($_return_)
50
		{
51
			ob_start();
52
			ob_implicit_flush(false);
53
			require($_viewFile_);
54
			return ob_get_clean();
55
		}
56
		else
57
		{
58
			require($_viewFile_);
59
		}
60
	}
61
62
}
63