/libraries/domit/php_http_exceptions.php
PHP | 113 lines | 53 code | 13 blank | 47 comment | 10 complexity | f434a97535d1fef27ead0d2c3746828f MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0
- <?php
- /**
- * PHP HTTP Tools is a library for working with the http protocol
- * HTTPExceptions is an HTTP Exceptions class
- * @package php-http-tools
- * @copyright (C) 2004 John Heinstein. All rights reserved
- * @license http://www.gnu.org/copyleft/lesser.html LGPL License
- * @author John Heinstein <johnkarl@nbnet.nb.ca>
- * @link http://www.engageinteractive.com/php_http_tools/ PHP HTTP Tools Home Page
- * PHP HTTP Tools are Free Software
- **/
- /** socket connection error */
- define('HTTP_SOCKET_CONNECTION_ERR', 1);
- /** http transport error */
- define('HTTP_TRANSPORT_ERR', 2);
- //HTTPExceptions Error Modes
- /** continue on error */
- define('HTTP_ONERROR_CONTINUE', 1);
- /** die on error */
- define('HTTP_ONERROR_DIE', 2);
- /**
- * @global object Reference to custom error handler for HTTP Exception class
- */
- $GLOBALS['HTTP_Exception_errorHandler'] = null;
- /**
- * @global int Error mode; specifies whether to die on error or simply return
- */
- //$GLOBALS['HTTP_Exception_mode'] = HTTP_ONERROR_RETURN;
- // fixes bug identified here: sarahk.pcpropertymanager.com/blog/using-domit-rss/225/
- $GLOBALS['HTTP_Exception_mode'] = 1;
- /**
- * @global string Log file for errors
- */
- $GLOBALS['HTTP_Exception_log'] = null;
- /**
- * An HTTP Exceptions class (not yet implemented)
- *
- * @package php-http-tools
- * @author John Heinstein <johnkarl@nbnet.nb.ca>
- */
- class HTTPExceptions {
- function raiseException($errorNum, $errorString) {
- //die('HTTP Exception: ' . $errorNum . "\n " . $errorString);
- if ($GLOBALS['HTTP_Exception_errorHandler'] != null) {
- call_user_func($GLOBALS['HTTP_Exception_errorHandler'], $errorNum, $errorString);
- }
- else {
- $errorMessageText = $errorNum . ' ' . $errorString;
- $errorMessage = 'Error: ' . $errorMessageText;
- if ((!isset($GLOBALS['HTTP_ERROR_FORMATTING_HTML'])) ||
- ($GLOBALS['HTTP_ERROR_FORMATTING_HTML'] == true)) {
- $errorMessage = "<p><pre>" . $errorMessage . "</pre></p>";
- }
- //log error to file
- if ((isset($GLOBALS['HTTP_Exception_log'])) &&
- ($GLOBALS['HTTP_Exception_log'] != null)) {
- require_once(PHP_HTTP_TOOLS_INCLUDE_PATH . 'php_file_utilities.php');
- $logItem = "\n" . date('Y-m-d H:i:s') . ' HTTP Error ' . $errorMessageText;
- php_file_utilities::putDataToFile($GLOBALS['HTTP_Exception_log'],
- $logItem, 'a');
- }
- switch ($GLOBALS['HTTP_Exception_mode']) {
- case HTTP_ONERROR_CONTINUE:
- return;
- break;
- case HTTP_ONERROR_DIE:
- die($errorMessage);
- break;
- }
- }
- } //raiseException
- /**
- * custom handler for HTTP errors
- * @param object A reference to the custom error handler
- */
- function setErrorHandler($method) {
- $GLOBALS['HTTP_Exception_errorHandler'] =& $method;
- } //setErrorHandler
- /**
- * Set error mode
- * @param int The HTTP error mode
- */
- function setErrorMode($mode) {
- $GLOBALS['HTTP_Exception_mode'] = $mode;
- } //setErrorMode
- /**
- * Set error mode
- * @param boolean True if errors should be logged
- * @param string Absolute or relative path to log file
- */
- function setErrorLog($doLogErrors, $logfile) {
- if ($doLogErrors) {
- $GLOBALS['HTTP_Exception_log'] = $logfile;
- }
- else {
- $GLOBALS['HTTP_Exception_log'] = null;
- }
- } //setErrorLog
- } //HTTPExceptions
- ?>