0byt3m1n1 - D7net
0byt3m1n1 - D7net
Path:
/
home
/
s13cf5ef
/
www
/
ropadefutbolbarata.com
/
web
/
libraries
/
joomla
/
error
/
[
Home
]
Name File: error.php
< back
<?php /** * @package Joomla.Platform * @subpackage Error * * @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; // Error Definition: Illegal Options define('JERROR_ILLEGAL_OPTIONS', 1); // Error Definition: Callback does not exist define('JERROR_CALLBACK_NOT_CALLABLE', 2); // Error Definition: Illegal Handler define('JERROR_ILLEGAL_MODE', 3); /** * Error Handling Class * * This class is inspired in design and concept by patErrorManager <http://www.php-tools.net> * * patErrorManager contributors include: * - gERD Schaufelberger <gerd@php-tools.net> * - Sebastian Mordziol <argh@php-tools.net> * - Stephan Schmidt <scst@php-tools.net> * * @package Joomla.Platform * @subpackage Error * @since 11.1 * @deprecated 12.1 Use PHP Exception */ abstract class JError { /** * Legacy error handling marker * * @var boolean True to enable legacy error handling using JError, false to use exception handling. This flag * is present to allow an easy transition into exception handling for code written against the * existing JError API in Joomla. * @since 11.1 */ public static $legacy = false; /** * Array of message levels * * @var array * @since 11.1 */ protected static $levels = array(E_NOTICE => 'Notice', E_WARNING => 'Warning', E_ERROR => 'Error'); protected static $handlers = array( E_NOTICE => array('mode' => 'ignore'), E_WARNING => array('mode' => 'ignore'), E_ERROR => array('mode' => 'ignore') ); protected static $stack = array(); /** * Method to determine if a value is an exception object. This check supports * both JException and PHP5 Exception objects * * @param mixed &$object Object to check * * @return boolean True if argument is an exception, false otherwise. * * @since 11.1 * * @deprecated 12.1 */ public static function isError(& $object) { // Deprecation warning. JLog::add('JError::isError() is deprecated.', JLog::WARNING, 'deprecated'); // Supports PHP 5 exception handling return $object instanceof Exception; } /** * Method for retrieving the last exception object in the error stack * * @param boolean $unset True to remove the error from the stack. * * @return mixed Last exception object in the error stack or boolean false if none exist * * @deprecated 12.1 * @since 11.1 */ public static function getError($unset = false) { // Deprecation warning. JLog::add('JError::getError() is deprecated.', JLog::WARNING, 'deprecated'); if (!isset(JError::$stack[0])) { return false; } if ($unset) { $error = array_shift(JError::$stack); } else { $error = &JError::$stack[0]; } return $error; } /** * Method for retrieving the exception stack * * @return array Chronological array of errors that have been stored during script execution * * @deprecated 12.1 * @since 11.1 */ public static function getErrors() { // Deprecation warning. JLog::add('JError::getErrors() is deprecated.', JLog::WARNING, 'deprecated'); return JError::$stack; } /** * Method to add non-JError thrown JExceptions to the JError stack for debugging purposes * * @param JException &$e Add an exception to the stack. * * @return void * * @since 11.1 * @deprecated 12.1 */ public static function addToStack(JException &$e) { // Deprecation warning. JLog::add('JError::addToStack() is deprecated.', JLog::WARNING, 'deprecated'); JError::$stack[] = &$e; } /** * Create a new JException object given the passed arguments * * @param integer $level The error level - use any of PHP's own error levels for * this: E_ERROR, E_WARNING, E_NOTICE, E_USER_ERROR, * E_USER_WARNING, E_USER_NOTICE. * @param string $code The application-internal error code for this error * @param string $msg The error message, which may also be shown the user if need be. * @param mixed $info Optional: Additional error information (usually only * developer-relevant information that the user should never see, * like a database DSN). * @param boolean $backtrace Add a stack backtrace to the exception. * * @return mixed The JException object * * @since 11.1 * @deprecated 12.1 Use PHP Exception * @see JException */ public static function raise($level, $code, $msg, $info = null, $backtrace = false) { // Deprecation warning. JLog::add('JError::raise() is deprecated.', JLog::WARNING, 'deprecated'); jimport('joomla.error.exception'); // Build error object $exception = new JException($msg, $code, $level, $info, $backtrace); return JError::throwError($exception); } /** * Throw an error * * @param object &$exception An exception to throw. * * @return reference * * @deprecated 12.1 Use PHP Exception * @see JException * @since 11.1 */ public static function throwError(&$exception) { // Deprecation warning. JLog::add('JError::throwError() is deprecated.', JLog::WARNING, 'deprecated'); static $thrown = false; // If thrown is hit again, we've come back to JError in the middle of throwing another JError, so die! if ($thrown) { self::handleEcho($exception, array()); // Inifite loop. jexit(); } $thrown = true; $level = $exception->get('level'); // See what to do with this kind of error $handler = JError::getErrorHandling($level); $function = 'handle' . ucfirst($handler['mode']); if (is_callable(array('JError', $function))) { $reference = call_user_func_array(array('JError', $function), array(&$exception, (isset($handler['options'])) ? $handler['options'] : array())); } else { // This is required to prevent a very unhelpful white-screen-of-death jexit( 'JError::raise -> Static method JError::' . $function . ' does not exist.' . ' Contact a developer to debug' . '<br /><strong>Error was</strong> ' . '<br />' . $exception->getMessage() ); } // We don't need to store the error, since JException already does that for us! // Remove loop check $thrown = false; return $reference; } /** * Wrapper method for the raise() method with predefined error level of E_ERROR and backtrace set to true. * * @param string $code The application-internal error code for this error * @param string $msg The error message, which may also be shown the user if need be. * @param mixed $info Optional: Additional error information (usually only * developer-relevant information that the user should * never see, like a database DSN). * * @return object $error The configured JError object * * @deprecated 12.1 Use PHP Exception * @see raise() * @since 11.1 */ public static function raiseError($code, $msg, $info = null) { // Deprecation warning. JLog::add('JError::raiseError() is deprecated.', JLog::WARNING, 'deprecated'); return JError::raise(E_ERROR, $code, $msg, $info, true); } /** * Wrapper method for the {@link raise()} method with predefined error level of E_WARNING and * backtrace set to false. * * @param string $code The application-internal error code for this error * @param string $msg The error message, which may also be shown the user if need be. * @param mixed $info Optional: Additional error information (usually only * developer-relevant information that * the user should never see, like a database DSN). * * @return object The configured JError object * * @deprecated 12.1 Use PHP Exception * @see JError * @see raise() * @since 11.1 */ public static function raiseWarning($code, $msg, $info = null) { // Deprecation warning. JLog::add('JError::raiseWarning() is deprecated.', JLog::WARNING, 'deprecated'); return JError::raise(E_WARNING, $code, $msg, $info); } /** * Wrapper method for the {@link raise()} method with predefined error * level of E_NOTICE and backtrace set to false. * * @param string $code The application-internal error code for this error * @param string $msg The error message, which may also be shown the user if need be. * @param mixed $info Optional: Additional error information (usually only * developer-relevant information that the user * should never see, like a database DSN). * * @return object The configured JError object * * @deprecated 12.1 Use PHP Exception * @see raise() * @since 11.1 */ public static function raiseNotice($code, $msg, $info = null) { // Deprecation warning. JLog::add('JError::raiseNotice() is deprecated.', JLog::WARNING, 'deprecated'); return JError::raise(E_NOTICE, $code, $msg, $info); } /** * Method to get the current error handler settings for a specified error level. * * @param integer $level The error level to retrieve. This can be any of PHP's * own error levels, e.g. E_ALL, E_NOTICE... * * @return array All error handling details * * @deprecated 12.1 Use PHP Exception * @since 11.1 */ public static function getErrorHandling($level) { // Deprecation warning. JLog::add('JError::getErrorHandling() is deprecated.', JLog::WARNING, 'deprecated'); return JError::$handlers[$level]; } /** * Method to set the way the JError will handle different error levels. Use this if you want to override the default settings. * * Error handling modes: * - ignore * - echo * - verbose * - die * - message * - log * - callback * * You may also set the error handling for several modes at once using PHP's bit operations. * Examples: * - E_ALL = Set the handling for all levels * - E_ERROR | E_WARNING = Set the handling for errors and warnings * - E_ALL ^ E_ERROR = Set the handling for all levels except errors * * @param integer $level The error level for which to set the error handling * @param string $mode The mode to use for the error handling. * @param mixed $options Optional: Any options needed for the given mode. * * @return mixed True on success or a JException object if failed. * * @deprecated 12.1 Use PHP Exception * @since 11.1 */ public static function setErrorHandling($level, $mode, $options = null) { // Deprecation warning. JLog::add('JError::setErrorHandling() is deprecated.', JLog::WARNING, 'deprecated'); $levels = JError::$levels; $function = 'handle' . ucfirst($mode); if (!is_callable(array('JError', $function))) { return JError::raiseError(E_ERROR, 'JError:' . JERROR_ILLEGAL_MODE, 'Error Handling mode is not known', 'Mode: ' . $mode . ' is not implemented.'); } foreach ($levels as $eLevel => $eTitle) { if (($level & $eLevel) != $eLevel) { continue; } // Set callback options if ($mode == 'callback') { if (!is_array($options)) { return JError::raiseError(E_ERROR, 'JError:' . JERROR_ILLEGAL_OPTIONS, 'Options for callback not valid'); } if (!is_callable($options)) { $tmp = array('GLOBAL'); if (is_array($options)) { $tmp[0] = $options[0]; $tmp[1] = $options[1]; } else { $tmp[1] = $options; } return JError::raiseError( E_ERROR, 'JError:' . JERROR_CALLBACK_NOT_CALLABLE, 'Function is not callable', 'Function:' . $tmp[1] . ' scope ' . $tmp[0] . '.' ); } } // Save settings JError::$handlers[$eLevel] = array('mode' => $mode); if ($options != null) { JError::$handlers[$eLevel]['options'] = $options; } } return true; } /** * Method that attaches the error handler to JError * * @return void * * @deprecated 12.1 * @see set_error_handler * @since 11.1 */ public static function attachHandler() { // Deprecation warning. JLog::add('JError::getErrorHandling() is deprecated.', JLog::WARNING, 'deprecated'); set_error_handler(array('JError', 'customErrorHandler')); } /** * Method that detaches the error handler from JError * * @return void * * @deprecated 12.1 * @see restore_error_handler * @since 11.1 */ public static function detachHandler() { // Deprecation warning. JLog::add('JError::detachHandler() is deprecated.', JLog::WARNING, 'deprecated'); restore_error_handler(); } /** * Method to register a new error level for handling errors * * This allows you to add custom error levels to the built-in * - E_NOTICE * - E_WARNING * - E_NOTICE * * @param integer $level Error level to register * @param string $name Human readable name for the error level * @param string $handler Error handler to set for the new error level [optional] * * @return boolean True on success; false if the level already has been registered * * @deprecated 12.1 * @since 11.1 */ public static function registerErrorLevel($level, $name, $handler = 'ignore') { // Deprecation warning. JLog::add('JError::registerErrorLevel() is deprecated.', JLog::WARNING, 'deprecated'); if (isset(JError::$levels[$level])) { return false; } JError::$levels[$level] = $name; JError::setErrorHandling($level, $handler); return true; } /** * Translate an error level integer to a human readable string * e.g. E_ERROR will be translated to 'Error' * * @param integer $level Error level to translate * * @return mixed Human readable error level name or boolean false if it doesn't exist * * @deprecated 12.1 * @since 11.1 */ public static function translateErrorLevel($level) { // Deprecation warning. JLog::add('JError::translateErrorLevel() is deprecated.', JLog::WARNING, 'deprecated'); if (isset(JError::$levels[$level])) { return JError::$levels[$level]; } return false; } /** * Ignore error handler * - Ignores the error * * @param object &$error Exception object to handle * @param array $options Handler options * * @return object The exception object * * @deprecated 12.1 * @see raise() * @since 11.1 */ public static function handleIgnore(&$error, $options) { // Deprecation warning. JLog::add('JError::handleIgnore() is deprecated.', JLog::WARNING, 'deprecated'); return $error; } /** * Echo error handler * - Echos the error message to output * * @param object &$error Exception object to handle * @param array $options Handler options * * @return object The exception object * * @deprecated 12.1 * @see raise() * @since 11.1 */ public static function handleEcho(&$error, $options) { // Deprecation warning. JLog::add('JError::handleEcho() is deprecated.', JLog::WARNING, 'deprecated'); $level_human = JError::translateErrorLevel($error->get('level')); // If system debug is set, then output some more information. if (defined('JDEBUG')) { $backtrace = $error->getTrace(); $trace = ''; for ($i = count($backtrace) - 1; $i >= 0; $i--) { if (isset($backtrace[$i]['class'])) { $trace .= sprintf("\n%s %s %s()", $backtrace[$i]['class'], $backtrace[$i]['type'], $backtrace[$i]['function']); } else { $trace .= sprintf("\n%s()", $backtrace[$i]['function']); } if (isset($backtrace[$i]['file'])) { $trace .= sprintf(' @ %s:%d', $backtrace[$i]['file'], $backtrace[$i]['line']); } } } if (isset($_SERVER['HTTP_HOST'])) { // output as html echo "<br /><b>jos-$level_human</b>: " . $error->get('message') . "<br />\n" . (defined('JDEBUG') ? nl2br($trace) : ''); } else { // Output as simple text if (defined('STDERR')) { fwrite(STDERR, "J$level_human: " . $error->get('message') . "\n"); if (defined('JDEBUG')) { fwrite(STDERR, $trace); } } else { echo "J$level_human: " . $error->get('message') . "\n"; if (defined('JDEBUG')) { echo $trace; } } } return $error; } /** * Verbose error handler * - Echos the error message to output as well as related info * * @param object &$error Exception object to handle * @param array $options Handler options * * @return object The exception object * * @deprecated 12.1 * @see raise() * @since 11.1 */ public static function handleVerbose(&$error, $options) { // Deprecation warning. JLog::add('JError::handleVerbose() is deprecated.', JLog::WARNING, 'deprecated'); $level_human = JError::translateErrorLevel($error->get('level')); $info = $error->get('info'); if (isset($_SERVER['HTTP_HOST'])) { // Output as html echo "<br /><b>J$level_human</b>: " . $error->get('message') . "<br />\n"; if ($info != null) { echo "   " . $info . "<br />\n"; } echo $error->getBacktrace(true); } else { // Output as simple text echo "J$level_human: " . $error->get('message') . "\n"; if ($info != null) { echo "\t" . $info . "\n"; } } return $error; } /** * Die error handler * - Echos the error message to output and then dies * * @param object &$error Exception object to handle * @param array $options Handler options * * @return object The exception object * * @deprecated 12.1 * @see raise() * @since 11.1 */ public static function handleDie(&$error, $options) { // Deprecation warning. JLog::add('JError::handleDie() is deprecated.', JLog::WARNING, 'deprecated'); $level_human = JError::translateErrorLevel($error->get('level')); if (isset($_SERVER['HTTP_HOST'])) { // Output as html jexit("<br /><b>J$level_human</b>: " . $error->get('message') . "<br />\n"); } else { // Output as simple text if (defined('STDERR')) { fwrite(STDERR, "J$level_human: " . $error->get('message') . "\n"); jexit(); } else { jexit("J$level_human: " . $error->get('message') . "\n"); } } return $error; } /** * Message error handler * Enqueues the error message into the system queue * * @param object &$error Exception object to handle * @param array $options Handler options * * @return object The exception object * * @deprecated 12.1 * @see raise() * @since 11.1 */ public static function handleMessage(&$error, $options) { // Deprecation warning. JLog::add('JError::handleMessage() is deprecated.', JLog::WARNING, 'deprecated'); $appl = JFactory::getApplication(); $type = ($error->get('level') == E_NOTICE) ? 'notice' : 'error'; $appl->enqueueMessage($error->get('message'), $type); return $error; } /** * Log error handler * Logs the error message to a system log file * * @param object &$error Exception object to handle * @param array $options Handler options * * @return object The exception object * * @deprecated 12.1 * @see raise() * @since 11.1 */ public static function handleLog(&$error, $options) { // Deprecation warning. JLog::add('JError::handleLog() is deprecated.', JLog::WARNING, 'deprecated'); static $log; if ($log == null) { $fileName = date('Y-m-d') . '.error.log'; $options['format'] = "{DATE}\t{TIME}\t{LEVEL}\t{CODE}\t{MESSAGE}"; $log = JLog::getInstance($fileName, $options); } $entry['level'] = $error->get('level'); $entry['code'] = $error->get('code'); $entry['message'] = str_replace(array("\r", "\n"), array('', '\\n'), $error->get('message')); $log->addEntry($entry); return $error; } /** * Callback error handler * - Send the error object to a callback method for error handling * * @param object &$error Exception object to handle * @param array $options Handler options * * @return object The exception object * * @deprecated 12.1 * @see raise() * @since 11.1 */ public static function handleCallback(&$error, $options) { // Deprecation warning. JLog::add('JError::handleCallback() is deprecated.', JLog::WARNING, 'deprecated'); return call_user_func($options, $error); } /** * Display a custom error page and exit gracefully * * @param object &$error Exception object * * @return void * * @deprecated 12.1 * @since 11.1 */ public static function customErrorPage(&$error) { // Deprecation warning. JLog::add('JError::customErrorPage() is deprecated.', JLog::WARNING, 'deprecated'); // Initialise variables. $app = JFactory::getApplication(); $document = JDocument::getInstance('error'); if ($document) { $config = JFactory::getConfig(); // Get the current template from the application $template = $app->getTemplate(); // Push the error object into the document $document->setError($error); @ob_end_clean(); $document->setTitle(JText::_('Error') . ': ' . $error->get('code')); $data = $document->render(false, array('template' => $template, 'directory' => JPATH_THEMES, 'debug' => $config->get('debug'))); // Failsafe to get the error displayed. if (empty($data)) { self::handleEcho($error, array()); } else { // Do not allow cache JResponse::allowCache(false); JResponse::setBody($data); echo JResponse::toString(); } } else { // Just echo the error since there is no document // This is a common use case for Command Line Interface applications. self::handleEcho($error, array()); } $app->close(0); } /** * Display a message to the user * * @param integer $level The error level - use any of PHP's own error levels * for this: E_ERROR, E_WARNING, E_NOTICE, E_USER_ERROR, * E_USER_WARNING, E_USER_NOTICE. * @param string $msg Error message, shown to user if need be. * * @return void * * @deprecated 12.1 * @since 11.1 */ public static function customErrorHandler($level, $msg) { // Deprecation warning. JLog::add('JError::customErrorHandler() is deprecated.', JLog::WARNING, 'deprecated'); JError::raise($level, '', $msg); } /** * Render the backtrace * * @param integer $error The error * * @return string Contents of the backtrace * * @deprecated 12.1 * @since 11.1 */ public static function renderBacktrace($error) { // Deprecation warning. JLog::add('JError::renderBacktrace() is deprecated.', JLog::WARNING, 'deprecated'); $contents = null; $backtrace = $error->getTrace(); if (is_array($backtrace)) { ob_start(); $j = 1; echo '<table cellpadding="0" cellspacing="0" class="Table">'; echo ' <tr>'; echo ' <td colspan="3" class="TD"><strong>Call stack</strong></td>'; echo ' </tr>'; echo ' <tr>'; echo ' <td class="TD"><strong>#</strong></td>'; echo ' <td class="TD"><strong>Function</strong></td>'; echo ' <td class="TD"><strong>Location</strong></td>'; echo ' </tr>'; for ($i = count($backtrace) - 1; $i >= 0; $i--) { echo ' <tr>'; echo ' <td class="TD">' . $j . '</td>'; if (isset($backtrace[$i]['class'])) { echo ' <td class="TD">' . $backtrace[$i]['class'] . $backtrace[$i]['type'] . $backtrace[$i]['function'] . '()</td>'; } else { echo ' <td class="TD">' . $backtrace[$i]['function'] . '()</td>'; } if (isset($backtrace[$i]['file'])) { echo ' <td class="TD">' . $backtrace[$i]['file'] . ':' . $backtrace[$i]['line'] . '</td>'; } else { echo ' <td class="TD"> </td>'; } echo ' </tr>'; $j++; } echo '</table>'; $contents = ob_get_contents(); ob_end_clean(); } return $contents; } }
©
2018. | Recode by D7net