class_Error.inc.php
4.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php
/**
* @filesource class_Error.inc.php
*
* @category losp
* @copyright Copyright by mensch.coop e.G. 2009
* @mailto dev [at] mensch.coop
* @version 0.4.200901
* @link http://mensch.coop
*/
class Error extends mcReport {
public static $ErrorArray = array(
1 => 'E_ERROR',
2 => 'E_WARNING',
4 => 'E_PARSE',
8 => 'E_NOTICE',
16 => 'E_CORE_ERROR',
32 => 'E_CORE_WARNING',
64 => 'E_COMPILE_ERROR',
128 => 'E_COMPILE_WARNING',
256 => 'E_USER_ERROR',
512 => 'E_USER_WARNING',
1024 => 'E_USER_NOTICE',
2048 => 'E_STRICT',
4096 => 'E_RECOVERABLE_ERROR',
) ;
private static $ErrorList;
public static $Quantity=0;
private $ErrorFunction;
/**
* @var string code word for error level
*
* DevError - Error which is for user invisible
* DisplayError - Errir which is for user visible
*/
private $Title;
/**
* @var string code word for errors
*
* NoLoadBE - Error BE cant be load
* NoSaveBE - Error BE cant be save
* NoExistBE - Error BE not exist
* NoLinkBE - Error BE cant be link with others BEs
*/
private $Comment;
private $Code;
private $array_debug_backtrace;
private function __construct($param_title="",$param_comment="", $param_code=""){
$this->array_debug_backtrace = debug_backtrace();
$this->ErrorFunction = $this->array_debug_backtrace[2]["class"].$this->array_debug_backtrace[2]["type"]
.$this->array_debug_backtrace[2]["function"]."(...) :".$this->array_debug_backtrace[1]["line"]."";
$this->Title = $param_title;
$this->Comment = $param_comment;
$this->Code = $param_code;
}
/**
* @todo klar die Parameter definieren, es werden leider immer wieder unterschiedliche Werte übergeben
*
*
* @param <type> $param_title
* @param <type> $param_comment
* @param <type> $param_code
*/
public static function newError($param_title="",$param_comment="", $param_code="") {
global $_LOSP_DEV;
if($_LOSP_DEV) {
D::ulli('<b>'.$param_title.'</b> -- '.$param_comment.' -- '.$param_code);
}
self::$ErrorList[self::$Quantity] = new Error($param_title,$param_comment, $param_code);
mcReport::add(self::$ErrorList[self::$Quantity]);
self::$Quantity++;
}
protected function getTextMessage() {
if(is_null($this->TextMessage)) {
$this->TextMessage .= 'Title:'. mcCONST::TAB. $this->Title. mcCONST::LINEBREAK;
if(array_key_exists($this->Code, Error::$ErrorArray)) {
$this->TextMessage .= 'Typ:'. mcCONST::TAB. Error::$ErrorArray[$this->Code].mcCONST::LINEBREAK;
} else {
$this->TextMessage .= 'Code:'. mcCONST::TAB. $this->Code. mcCONST::LINEBREAK;
}
$this->TextMessage .= 'Notice:'. mcCONST::TAB. $this->Comment. mcCONST::LINEBREAK;
$this->TextMessage .= 'ErrorFnc:'. mcCONST::TAB. $this->ErrorFunction. mcCONST::LINEBREAK;
$this->TextMessage .= mcCONST::LINEBREAK;
}
return $this->TextMessage;
}
/********************************************************************************
* *
* XML Funktionen (Es wird jeweils immer ein DOMElement zurück gegeben)
* *
********************************************************************************/
protected function getDOMElement(DOMDocument $DOMDocument){
$DOMElement = parent::getDOMElement($DOMDocument);
$DOMElement->setAttribute('class', 'error');
$DOMElement->appendChild($DOMDocument->createElement('Function',$this->ErrorFunction));
$DOMElement->appendChild($DOMDocument->createElement('Title',$this->Title));
if($this->Comment) {
$DOMElement->appendChild($DOMDocument->createElement('Comment',$this->Comment));
}
$DOMElement->appendChild($DOMDocument->createElement('Code',$this->Code));
return $DOMElement;
}
public static function getAllXML($DOMDocument){
$DOMElement = $DOMDocument->createElement("ErrorList");
// D::ulli(self::$Quantity.'('.count(self::$ErrorList).'/'.self::$Quantity.'): '.$param_title);
for($i=0; $i<count(self::$ErrorList);$i++){
$DOMElement->appendChild(self::$ErrorList[$i]->getDOMElement($DOMDocument));
}
return $DOMElement;
}
}
?>