<?php /** * @file Error.inc.php * @category freeSN * @mailto code [at] netz.coop * @version 0.4.200901 * @link http://netz.coop * * @copyright Copyright by netz.coop e.G. 2015 * * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ class Error{ 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; private 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; public 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; } public static function newError($param_title="",$param_comment="", $param_code="") { D::backtrace('Error '.$param_title.' '.$param_comment); self::$ErrorList[self::$Quantity] = new Error($param_title,$param_comment, $param_code); self::$Quantity++; } /******************************************************************************** * * * XML Funktionen (Es wird jeweils immer ein DOMElement zurück gegeben) * * ********************************************************************************/ public function getNormalXML($DOMDocument){ $DOMElement = $DOMDocument->createElement("Error"); $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)); } // if($this->Code) { $DOMElement->appendChild($DOMDocument->createElement('Code',$this->Code)); // $DOMElement->appendChild($DOMDocument->createElement('Code','adsf')); // } return $DOMElement; } public static function getAllXML($DOMDocument){ $DOMElement = $DOMDocument->createElement("ErrorList"); for($i=0; $i<count(self::$ErrorList);$i++){ $DOMElement->appendChild(self::$ErrorList[$i]->getNormalXML($DOMDocument)); } return $DOMElement; } public function getNormalText(){ $string ="\n\n####################################\n"; $string .= "Funktion: ". $this->ErrorFunction. "\n\n"; if($this->Title) $string .= "Title: ". $this->Title. "\n"; if($this->Comment) $string .= "Comment: ". $this->Comment. "\n"; if($this->Code) $string .= "Code: ". $this->Code. "\n"; $string .= "--------------------------------------\n"; $k=0; for($i=count($this->array_debug_backtrace)-1; $i!=1; $i--) { $k++; $ul_start=""; for($j=0; $j<$k; $j++) { $ul_start .= "."; } $string .= $ul_start." ".$this->array_debug_backtrace[$i]["class"].$this->array_debug_backtrace[$i]["type"].$this->array_debug_backtrace[$i]["function"]."(...) Zeile ".$this->array_debug_backtrace[$i]["line"]." in ".basename($this->array_debug_backtrace[$i]["file"])."\n" ; } return $string; } public static function getAllText(){ $string = "Fehler:"; for($i=0; $i<count(self::$ErrorList);$i++){ $string .= self::$ErrorList[$i]->getNormalText(); } return $string; } } ?>