mirror of
https://github.com/php/php-src.git
synced 2025-08-18 23:18:56 +02:00
* added expectError() method
This commit is contained in:
parent
eb52f75407
commit
c49f8aa0ef
1 changed files with 89 additions and 5 deletions
|
@ -68,12 +68,56 @@ class PEAR
|
|||
{
|
||||
// {{{ properties
|
||||
|
||||
/**
|
||||
* Whether to enable internal debug messages.
|
||||
*
|
||||
* @var bool
|
||||
* @access private
|
||||
*/
|
||||
var $_debug = false;
|
||||
|
||||
/**
|
||||
* Default error mode for this object.
|
||||
*
|
||||
* @var int
|
||||
* @access private
|
||||
*/
|
||||
var $_default_error_mode = null;
|
||||
|
||||
/**
|
||||
* Default error options used for this object when error mode
|
||||
* is PEAR_ERROR_TRIGGER.
|
||||
*
|
||||
* @var int
|
||||
* @access private
|
||||
*/
|
||||
var $_default_error_options = null;
|
||||
|
||||
/**
|
||||
* Default error handler (callback) for this object, if error mode is
|
||||
* PEAR_ERROR_CALLBACK.
|
||||
*
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $_default_error_handler = '';
|
||||
|
||||
/**
|
||||
* Which class to use for error objects.
|
||||
*
|
||||
* @var string
|
||||
* @access private
|
||||
*/
|
||||
var $_error_class = 'PEAR_Error';
|
||||
|
||||
/**
|
||||
* An array of expected errors.
|
||||
*
|
||||
* @var array
|
||||
* @access private
|
||||
*/
|
||||
var $_expected_errors = null;
|
||||
|
||||
// }}}
|
||||
|
||||
// {{{ constructor
|
||||
|
@ -82,6 +126,11 @@ class PEAR
|
|||
* Constructor. Registers this object in
|
||||
* $_PEAR_destructor_object_list for destructor emulation if a
|
||||
* destructor object exists.
|
||||
*
|
||||
* @param string (optional) which class to use for error objects,
|
||||
* defaults to PEAR_Error.
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function PEAR($error_class = null)
|
||||
{
|
||||
|
@ -116,6 +165,7 @@ class PEAR
|
|||
* destructors.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function _PEAR() {
|
||||
if ($this->_debug) {
|
||||
|
@ -130,9 +180,9 @@ class PEAR
|
|||
/**
|
||||
* Tell whether a value is a PEAR error.
|
||||
*
|
||||
* @param $data the value to test
|
||||
* @param mixed the value to test
|
||||
* @access public
|
||||
* @return bool true if $data is an error
|
||||
* @return bool true if parameter is an error
|
||||
*/
|
||||
function isError($data) {
|
||||
return (bool)(is_object($data) &&
|
||||
|
@ -167,6 +217,8 @@ class PEAR
|
|||
* at index 0 is the object, and the element at index 1 is
|
||||
* the name of the method to call in the object.
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
* @see PEAR_ERROR_RETURN
|
||||
* @see PEAR_ERROR_PRINT
|
||||
* @see PEAR_ERROR_TRIGGER
|
||||
|
@ -215,6 +267,29 @@ class PEAR
|
|||
}
|
||||
}
|
||||
|
||||
// }}}
|
||||
// {{{ expectError()
|
||||
|
||||
/**
|
||||
* This method is used to tell which errors you expect to get.
|
||||
* Expected errors are always returned with error mode
|
||||
* PEAR_ERROR_RETURN. To stop expecting errors, call this method
|
||||
* again without parameters.
|
||||
*
|
||||
* @param mixed a single error code or an array of error codes
|
||||
* to expect
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function expectError($code = null)
|
||||
{
|
||||
if ($code === null || is_array($code)) {
|
||||
$this->_expected_errors = $code;
|
||||
} else {
|
||||
$this->_expected_errors = array($code);
|
||||
}
|
||||
}
|
||||
|
||||
// }}}
|
||||
// {{{ raiseError()
|
||||
|
||||
|
@ -225,11 +300,14 @@ class PEAR
|
|||
* specified, the object's defaults are used.
|
||||
*
|
||||
* @param $message a text error message or a PEAR error object
|
||||
*
|
||||
* @param $code a numeric error code (it is up to your class
|
||||
* to define these if you want to use codes)
|
||||
*
|
||||
* @param $mode One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT,
|
||||
* PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE or
|
||||
* PEAR_ERROR_CALLBACK.
|
||||
*
|
||||
* @param $options If $mode is PEAR_ERROR_TRIGGER, this parameter
|
||||
* specifies the PHP-internal error level (one of
|
||||
* E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR).
|
||||
|
@ -237,18 +315,19 @@ class PEAR
|
|||
* parameter specifies the callback function or
|
||||
* method. In other error modes this parameter
|
||||
* is ignored.
|
||||
*
|
||||
* @param $userinfo If you need to pass along for example debug
|
||||
* information, this parameter is meant for that.
|
||||
*
|
||||
* @param $error_class The returned error object will be instantiated
|
||||
* from this class, if specified.
|
||||
*
|
||||
* @param $skipmsg If true, raiseError will only pass error codes,
|
||||
* the error message parameter will be dropped.
|
||||
*
|
||||
*
|
||||
* @access public
|
||||
* @return object a PEAR error object
|
||||
*
|
||||
* @see PEAR::setErrorHandling
|
||||
*
|
||||
* @since PHP 4.0.5
|
||||
*/
|
||||
function &raiseError($message = null,
|
||||
|
@ -262,11 +341,16 @@ class PEAR
|
|||
// The error is yet a PEAR error object
|
||||
if (is_object($message)) {
|
||||
$code = $message->getCode();
|
||||
$mode = $message->getMode();
|
||||
$userinfo = $message->getUserInfo();
|
||||
$error_class = $message->getType();
|
||||
$message = $message->getMessage();
|
||||
}
|
||||
|
||||
if (@in_array($code, $this->_expected_errors)) {
|
||||
$mode = PEAR_ERROR_RETURN;
|
||||
}
|
||||
|
||||
if ($mode === null) {
|
||||
if (isset($this) && isset($this->_default_error_mode)) {
|
||||
$mode = $this->_default_error_mode;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue