git-svn-id: https://192.168.0.254/svn/Proyectos.FundacionLQDVI_WebCongresos/trunk@2 94ccb1af-fd9d-d947-8d90-7f70ea60afc8
298 lines
6.2 KiB
PHP
298 lines
6.2 KiB
PHP
<?php
|
|
/**
|
|
* patError error object used by the patFormsError manager as error messages
|
|
* container for precise error management.
|
|
*
|
|
* $Id: patError.php 12694 2009-09-11 21:03:02Z ian $
|
|
*
|
|
* @access public
|
|
* @package patError
|
|
*/
|
|
|
|
/**
|
|
* patError error object used by the patFormsError manager as error messages
|
|
* container for precise error management.
|
|
*
|
|
* $Id: patError.php 12694 2009-09-11 21:03:02Z ian $
|
|
*
|
|
* @access public
|
|
* @package patError
|
|
* @version 0.3
|
|
* @author gERD Schaufelberger <gerd@php-tools.net>
|
|
* @author Sebastian Mordziol <argh@php-tools.net>
|
|
* @author Stephan Schmidt <schst@php-tools.net>
|
|
* @license LGPL
|
|
* @link http://www.php-tools.net
|
|
*/
|
|
class patError
|
|
{
|
|
/**
|
|
* stores the error level for this error
|
|
*
|
|
* @access private
|
|
* @var string
|
|
*/
|
|
var $level = null;
|
|
|
|
/**
|
|
* stores the code of the error
|
|
*
|
|
* @access private
|
|
* @var string
|
|
*/
|
|
var $code = null;
|
|
|
|
/**
|
|
* stores the error message - this is the message that can also be shown the
|
|
* user if need be.
|
|
*
|
|
* @access private
|
|
* @var string
|
|
*/
|
|
var $message = null;
|
|
|
|
/**
|
|
* additional info that is relevant for the developer of the script (e.g. if
|
|
* a database connect fails, the dsn used) and that the end-user should not
|
|
* see.
|
|
*
|
|
* @access private
|
|
* @var string
|
|
*/
|
|
var $info = '';
|
|
|
|
/**
|
|
* stores the filename of the file the error occurred in.
|
|
*
|
|
* @access private
|
|
* @var string
|
|
*/
|
|
var $file = '';
|
|
|
|
/**
|
|
* stores the line number the error occurred in.
|
|
*
|
|
* @access private
|
|
* @var integer
|
|
*/
|
|
var $line = 0;
|
|
|
|
/**
|
|
* stores the name of the method the error occurred in
|
|
*
|
|
* @access private
|
|
* @var string
|
|
*/
|
|
var $function = '';
|
|
|
|
/**
|
|
* stores the name of the class (if any) the error occurred in.
|
|
*
|
|
* @access private
|
|
* @var string
|
|
*/
|
|
var $class = '';
|
|
|
|
/**
|
|
* stores the type of error, as it is listed in the error backtrace
|
|
*
|
|
* @access private
|
|
* @var string
|
|
*/
|
|
var $type = '';
|
|
|
|
/**
|
|
* stores the arguments the method that the error occurred in had received.
|
|
*
|
|
* @access private
|
|
* @var array
|
|
*/
|
|
var $args = array();
|
|
|
|
/**
|
|
* stores the complete debug backtrace (if your PHP version has the
|
|
* debug_backtrace function)
|
|
*
|
|
* @access private
|
|
* @var mixed
|
|
*/
|
|
var $backtrace = false;
|
|
|
|
/**
|
|
* constructor, wrapper for the upcoming PHP5 constructors for upward
|
|
* compatibility.
|
|
*
|
|
* @access public
|
|
* @param int $level The error level (use the PHP constants E_ALL, E_NOTICE etc.).
|
|
* @param string $code The error code from the application
|
|
* @param string $msg The error message
|
|
* @param string $info Optional: The additional error information.
|
|
* @see __construct()
|
|
*/
|
|
function patError( $level, $code, $msg, $info = null )
|
|
{
|
|
$this->__construct( $level, $code, $msg, $info );
|
|
}
|
|
|
|
/**
|
|
* constructor - used to set up the error with all needed error details.
|
|
*
|
|
* @access public
|
|
* @param int $level The error level (use the PHP constants E_ALL, E_NOTICE etc.).
|
|
* @param string $code The error code from the application
|
|
* @param string $msg The error message
|
|
* @param string $info Optional: The additional error information.
|
|
* @todo all calls to patErrorManager::raise* should not be included in backtrace
|
|
*/
|
|
function __construct( $level, $code, $msg, $info = null )
|
|
{
|
|
static $raise = array( 'raise',
|
|
'raiseerror',
|
|
'raisewarning',
|
|
'raisenotice'
|
|
);
|
|
|
|
$this->level = $level;
|
|
$this->code = $code;
|
|
$this->message = $msg;
|
|
|
|
if( $info != null )
|
|
{
|
|
$this->info = $info;
|
|
}
|
|
|
|
if( function_exists( 'debug_backtrace' ) )
|
|
{
|
|
$this->backtrace = debug_backtrace();
|
|
|
|
for( $i = count( $this->backtrace ) - 1; $i >= 0; --$i )
|
|
{
|
|
if( in_array( $this->backtrace[$i]['function'], $raise ) )
|
|
{
|
|
++$i;
|
|
if( isset( $this->backtrace[$i]['file'] ) )
|
|
$this->file = $this->backtrace[$i]['file'];
|
|
if( isset( $this->backtrace[$i]['line'] ) )
|
|
$this->line = $this->backtrace[$i]['line'];
|
|
if( isset( $this->backtrace[$i]['class'] ) )
|
|
$this->class = $this->backtrace[$i]['class'];
|
|
if( isset( $this->backtrace[$i]['function'] ) )
|
|
$this->function = $this->backtrace[$i]['function'];
|
|
if( isset( $this->backtrace[$i]['type'] ) )
|
|
$this->type = $this->backtrace[$i]['type'];
|
|
|
|
$this->args = false;
|
|
if( isset( $this->backtrace[$i]['args'] ) )
|
|
{
|
|
$this->args = $this->backtrace[$i]['args'];
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* returns the error level of the error - corresponds to the PHP
|
|
* error levels (E_ALL, E_NOTICE...)
|
|
*
|
|
* @access public
|
|
* @return int $level The error level
|
|
* @see $level
|
|
*/
|
|
function getLevel()
|
|
{
|
|
return $this->level;
|
|
}
|
|
|
|
|
|
/**
|
|
* retrieves the error message
|
|
*
|
|
* @access public
|
|
* @return string $msg The stored error message
|
|
* @see $message
|
|
*/
|
|
function getMessage()
|
|
{
|
|
return $this->message;
|
|
}
|
|
|
|
/**
|
|
* retrieves the additional error information (information usually
|
|
* only relevant for developers)
|
|
*
|
|
* @access public
|
|
* @return mixed $info The additional information
|
|
* @see $info
|
|
*/
|
|
function getInfo()
|
|
{
|
|
return $this->info;
|
|
}
|
|
|
|
/**
|
|
* recieve error code
|
|
*
|
|
* @access public
|
|
* @return string|integer error code (may be a string or an integer)
|
|
* @see $code
|
|
*/
|
|
function getCode()
|
|
{
|
|
return $this->code;
|
|
}
|
|
|
|
/**
|
|
* get the backtrace
|
|
*
|
|
* This is only possible, if debug_backtrace() is available.
|
|
*
|
|
* @access public
|
|
* @return array backtrace
|
|
* @see $backtrace
|
|
*/
|
|
function getBacktrace( $formatted=false )
|
|
{
|
|
if ($formatted && is_array( $this->backtrace )) {
|
|
$result = '';
|
|
foreach( debug_backtrace() as $back) {
|
|
if (!preg_match( '#patErrorManager.php#i', $back['file'])) {
|
|
$result .= '<br />'.$back['file'].':'.$back['line'];
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
return $this->backtrace;
|
|
}
|
|
|
|
/**
|
|
* get the filename in which the error occured
|
|
*
|
|
* This is only possible, if debug_backtrace() is available.
|
|
*
|
|
* @access public
|
|
* @return string filename
|
|
* @see $file
|
|
*/
|
|
function getFile()
|
|
{
|
|
return $this->file;
|
|
}
|
|
|
|
/**
|
|
* get the line number in which the error occured
|
|
*
|
|
* This is only possible, if debug_backtrace() is available.
|
|
*
|
|
* @access public
|
|
* @return integer line number
|
|
* @see $line
|
|
*/
|
|
function getLine()
|
|
{
|
|
return $this->line;
|
|
}
|
|
}
|
|
?>
|