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

PhpRenderer::render()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 23
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
c 2
b 1
f 0
dl 0
loc 23
rs 9.0856
cc 3
eloc 12
nc 4
nop 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