Newer
Older
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
<?php
/*********************************************************************
class.error.php
Error handling for PHP < 5.0. Allows for returning a formal error from a
function since throwing it isn't available. Also allows for consistent
logging and debugging of errors in the osTicket system log.
Peter Rotich <peter@osticket.com>
Jared Hancock <jared@osticket.com>
Copyright (c) 2006-2013 osTicket
http://www.osticket.com
Released under the GNU General Public License WITHOUT ANY WARRANTY.
See LICENSE.TXT for details.
vim: expandtab sw=4 ts=4 sts=4:
**********************************************************************/
class Error /* extends Exception */ {
var $title = '';
function Error($message) {
call_user_func_array(array($this,'__construct'), func_get_args());
}
function __construct($message) {
global $ost;
$message = str_replace(ROOT_DIR, '(root)/', $message);
if ($ost->getConfig()->getLogLevel() == 3)
$message .= "\n\n" . $this->formatBacktrace(debug_backtrace());
$ost->logError($this->getTitle(), $message);
}
function getTitle() {
return get_class($this) . ": {$this->title}";
}
function formatBacktrace($bt) {
$buffer = array();
foreach ($bt as $i=>$frame)
$buffer[] = sprintf("#%d %s%s%s at [%s:%d]", $i,
$frame['class'], $frame['type'], $frame['function'],
str_replace(ROOT_DIR, '', $frame['file']), $frame['line']);
return implode("\n", $buffer);
}
}
class InitialDataError extends Error {
var $title = 'Problem with install initial data';
}
function raise_error($message, $class=false) {
if (!$class) $class = 'Error';
new $class($message);
}