<?php
/**
* The interface defines the methods that prepare the log message, HTML-formatted message
*
*/
interface gksException{
/**
* Prepare the message to write to the log
*
* @return string
*/
public function getLogMessage();
/**
* returns the exception dump prepared for a browser
*
* @return string
*/
public function getHtmlMessage();
}
/* EXCEPTIONS */
class pException extends Exception implements gksException {
static private $error_codes;
public $httpResponceCode=500;
public $defaultErrorMessage;
/**
* @param $code int - error code from [lang].errors.php
*/
function __construct($code){
if (!self::$error_codes){
$errors_file=_Config::$CONFIG_DIR.'/errors.php';
self::$error_codes = include($errors_file);
}
$this->defaultErrorMessage=self::$error_codes[1];
key_exists($code, self::$error_codes) || $code=1;
$message=self::$error_codes[$code];
parent::__construct($message, $code);
}
/**
* Create the message to write to the log
*
* @return string
*/
function getLogMessage(){
$log_string='Exception: '.$this->getMessage().' ('.$this->getCode().')'."\n".
'line '.$this->getLine().' file '.$this->getFile()."\n".$this->getTraceAsString()."\n";
return $log_string;
}
public function getHtmlMessage(){
$message = 'Exception: '. nl2br ($this->getMessage());
$trace = 'TRACE: <br />'. nl2br ($this->getTraceAsString());
return '<p style="font-weignt: bold; padding: 10px;">'."\n".$message."<br />\n".$trace."</p>\n";
}
//class end
}
|