Viewing file: Exceptions.php (4.33 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** * CodeIgniter * * An open source application development framework for PHP 5.1.6 or newer * * @package CodeIgniter * @author ExpressionEngine Dev Team * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc. * @license http://codeigniter.com/user_guide/license.html * @link http://codeigniter.com * @since Version 1.0 * @filesource */
// ------------------------------------------------------------------------
/** * Exceptions Class * * @package CodeIgniter * @subpackage Libraries * @category Exceptions * @author ExpressionEngine Dev Team * @link http://codeigniter.com/user_guide/libraries/exceptions.html */ class CI_Exceptions { var $action; var $severity; var $message; var $filename; var $line; var $ob_level;
var $levels = array( E_ERROR => 'Error', E_WARNING => 'Warning', E_PARSE => 'Parsing Error', E_NOTICE => 'Notice', E_CORE_ERROR => 'Core Error', E_CORE_WARNING => 'Core Warning', E_COMPILE_ERROR => 'Compile Error', E_COMPILE_WARNING => 'Compile Warning', E_USER_ERROR => 'User Error', E_USER_WARNING => 'User Warning', E_USER_NOTICE => 'User Notice', E_STRICT => 'Runtime Notice' );
/** * Constructor */ public function __construct() { $this->ob_level = ob_get_level(); // Note: Do not log messages from this constructor. }
// --------------------------------------------------------------------
/** * Exception Logger * * This function logs PHP generated error messages * * @access private * @param string the error severity * @param string the error string * @param string the error filepath * @param string the error line number * @return string */ function log_exception($severity, $message, $filepath, $line) { $severity = ( ! isset($this->levels[$severity])) ? $severity : $this->levels[$severity];
log_message('error', 'Severity: '.$severity.' --> '.$message. ' '.$filepath.' '.$line, TRUE); }
// --------------------------------------------------------------------
/** * 404 Page Not Found Handler * * @access private * @param string * @return string */ function show_404($page = '', $log_error = TRUE) { $heading = "404 Page Not Found"; $message = "The page you requested was not found.";
// By default we log this, but allow a dev to skip it if ($log_error) { log_message('error', '404 Page Not Found --> '.$page); }
echo $this->show_error($heading, $message, 'error_404', 404); exit; }
// --------------------------------------------------------------------
/** * General Error Page * * This function takes an error message as input * (either as a string or an array) and displays * it using the specified template. * * @access private * @param string the heading * @param string the message * @param string the template name * @return string */ function show_error($heading, $message, $template = 'error_general', $status_code = 500) { set_status_header($status_code);
$message = '<p>'.implode('</p><p>', ( ! is_array($message)) ? array($message) : $message).'</p>';
if (ob_get_level() > $this->ob_level + 1) { ob_end_flush(); } ob_start(); include(APPPATH.'errors/'.$template.EXT); $buffer = ob_get_contents(); ob_end_clean(); return $buffer; }
// --------------------------------------------------------------------
/** * Native PHP error handler * * @access private * @param string the error severity * @param string the error string * @param string the error filepath * @param string the error line number * @return string */ function show_php_error($severity, $message, $filepath, $line) { $severity = ( ! isset($this->levels[$severity])) ? $severity : $this->levels[$severity];
$filepath = str_replace("\\", "/", $filepath);
// For safety reasons we do not show the full file path if (FALSE !== strpos($filepath, '/')) { $x = explode('/', $filepath); $filepath = $x[count($x)-2].'/'.end($x); }
if (ob_get_level() > $this->ob_level + 1) { ob_end_flush(); } ob_start(); include(APPPATH.'errors/error_php'.EXT); $buffer = ob_get_contents(); ob_end_clean(); echo $buffer; }
} // END Exceptions Class
/* End of file Exceptions.php */ /* Location: ./system/core/Exceptions.php */
|