Completed
Push — development ( c1bc9e...065907 )
by Alexander
03:21
created

ErrorBuilder::getHtml()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

Changes 3
Bugs 0 Features 1
Metric Value
c 3
b 0
f 1
dl 0
loc 9
ccs 6
cts 6
cp 1
rs 9.6667
cc 1
eloc 6
nc 1
nop 0
crap 1
1
<?php
2
/**
3
 * Class for building errors in HTML format
4
 *
5
 * @file      ErrorBuilder.php
6
 *
7
 * PHP version 5.4+
8
 *
9
 * @author    Yancharuk Alexander <alex at itvault dot info>
10
 * @copyright © 2012-2015 Alexander Yancharuk <alex at itvault at info>
11
 * @date      2015-06-06 20:24
12
 * @license   The BSD 3-Clause License
13
 *            <https://tldrlegal.com/license/bsd-3-clause-license-(revised)>
14
 */
15
16
namespace Veles\ErrorHandler\HtmlBuilders;
17
18
use Veles\ErrorHandler\BaseErrorHandler;
19
use Veles\View\View;
20
21
/**
22
 * Class ErrorBuilder
23
 * @author  Yancharuk Alexander <alex at itvault dot info>
24
 */
25
class ErrorBuilder
26
{
27
	/** @var  BaseErrorHandler */
28
	protected $handler;
29
	/** @var  string */
30
	protected $template;
31
32
	/**
33
	 * Get error type
34
	 * @param string $type
35
	 */
36 1
	protected function convertTypeToString(&$type)
37
	{
38 1
		$type_copy = $type;
39
		$err_types = [
40 1
			E_ERROR             => 'FATAL ERROR',               // 1
41 1
			E_WARNING           => 'WARNING',                   // 2
42 1
			E_PARSE             => 'PARSE ERROR',               // 4
43 1
			E_NOTICE            => 'NOTICE',                    // 8
44 1
			E_CORE_ERROR        => 'CORE ERROR',                // 16
45 1
			E_CORE_WARNING      => 'CORE WARNING',              // 32
46 1
			E_CORE_ERROR        => 'COMPILE ERROR',             // 64
47 1
			E_CORE_WARNING      => 'COMPILE WARNING',           // 128
48 1
			E_USER_ERROR        => 'USER ERROR',                // 256
49 1
			E_USER_WARNING      => 'USER WARNING',              // 512
50 1
			E_USER_NOTICE       => 'USER NOTICE',               // 1024
51 1
			E_STRICT            => 'STRICT NOTICE',             // 2048
52 1
			E_RECOVERABLE_ERROR => 'RECOVERABLE ERROR',         // 4096
53 1
			E_DEPRECATED        => 'DEPRECATED WARNING',        // 8192
54 1
			E_USER_DEPRECATED   => 'USER DEPRECATED WARNING',   // 16384
55
			0                   => 'EXCEPTION'
56 1
		];
57
58 1
		$type = (isset($err_types[$type_copy]))
59 1
			? $err_types[$type_copy]
60 1
			: "UNKNOWN ERROR TYPE: $type_copy";
61 1
	}
62
63
	/**
64
	 * Calls backtrace formatting
65
	 *
66
	 * @param array $backtrace Calls array
67
	 */
68 1
	protected function formatBacktrace(array &$backtrace)
69
	{
70 1
		foreach ($backtrace as &$call) {
71 1
			$call['function'] = (isset($call['class']))
72 1
				? $call['class'] . $call['type'] . $call['function']
73 1
				: $call['function'];
74
75 1
			$call['file'] = (isset($call['file']))
76 1
				? $call['file'] . '<b>:</b>' . $call['line']
77 1
				: '';
78 1
		}
79 1
	}
80
81
	/**
82
	 * @return BaseErrorHandler
83
	 */
84 1
	public function getHandler()
85
	{
86 1
		return $this->handler;
87
	}
88
89
	/**
90
	 * @param BaseErrorHandler $handler
91
	 */
92 1
	public function setHandler(BaseErrorHandler $handler)
93
	{
94 1
		$this->handler = $handler;
95 1
	}
96
97
	/**
98
	 * @return string
99
	 */
100 1
	public function getTemplate()
101
	{
102 1
		return $this->template;
103
	}
104
105
	/**
106
	 * @param string $template
107
	 */
108 1
	public function setTemplate($template)
109
	{
110 1
		$this->template = $template;
111 1
	}
112
113
	/**
114
	 * @return string
115
	 */
116 1
	public function getHtml()
117
	{
118 1
		$vars = $this->getHandler()->getVars();
119 1
		$this->formatBacktrace($vars['stack']);
120 1
		$this->convertTypeToString($vars['type']);
121 1
		View::set($vars);
122
123 1
		return View::get($this->getTemplate());
124
	}
125
}
126