PEAR_ErrorStack
[ class tree: PEAR_ErrorStack ] [ index: PEAR_ErrorStack ] [ all elements ]

Class: PEAR_ErrorStack

Source Location: /PEAR-1.9.5/PEAR/ErrorStack.php

Class Overview


Error Stack Implementation


Author(s):

Version:

  • CVS: $Id$

Copyright:

  • 2004-2008 Greg Beaver

Variables

Methods


Inherited Variables

Inherited Methods


Class Details

[line 143]
Error Stack Implementation

Usage:

  1.  // global error stack
  2.  $global_stack &PEAR_ErrorStack::singleton('MyPackage');
  3.  // local error stack
  4.  $local_stack = new PEAR_ErrorStack('MyPackage');



[ Top ]


Class Variables

$_contextCallback =  false

[line 196]

If set to a valid callback, this will be used to generate the error

context for an error. For PHP-related errors, this will be a file and line number as retrieved from debug_backtrace(), but can be customized for other purposes. The error might actually be in a separate configuration file, or in a database query.

  • Access: protected

Type:   false|string|array


[ Top ]

$_errorCallback = array()

[line 208]

If set to a valid callback, this will be called every time an error is pushed onto the stack. The return value will be used to determine whether to allow an error to be pushed or logged.

The return value must be one an PEAR_ERRORSTACK_* constant


Type:   false|string|array


[ Top ]

$_logger =  false

[line 215]

PEAR::Log object for logging errors
  • Access: protected

Type:   false|Log


[ Top ]

$_package =

[line 169]

Package name this error stack represents
  • Access: protected

Type:   string


[ Top ]



Method Detail

PEAR_ErrorStack (Constructor)   [line 233]

PEAR_ErrorStack PEAR_ErrorStack( string $package, [callback $msgCallback = false], [callback $contextCallback = false], [boolean $throwPEAR_Error = false])

Set up a new error stack

Parameters:

string   $package     name of the package this error stack represents
callback   $msgCallback     callback used for error message generation
callback   $contextCallback     callback used for context generation, defaults to getFileLine()
boolean   $throwPEAR_Error     

[ Top ]

getErrorMessage   [line 909]

string getErrorMessage( PEAR_ErrorStack &$stack, array $err, [string|false $template = false])

Standard error message generation callback

This method may also be called by a custom error message generator to fill in template values from the params array, simply set the third parameter to the error message template string to use

The special variable %__msg% is reserved: use it only to specify where a message passed in by the user should be placed in the template, like so:

Error message: %msg% - internal error

If the message passed like so:

  1.  $stack->push(ERROR_CODE'error'array()'server error 500');

The returned error message will be "Error message: server error 500 - internal error"


Parameters:

PEAR_ErrorStack   &$stack     
array   $err     
string|false   $template     Pre-generated error message template

[ Top ]

getErrorMessageTemplate   [line 943]

string getErrorMessageTemplate( $code)

Standard Error Message Template generator from code

Parameters:

   $code     

[ Top ]

getErrors   [line 715]

array getErrors( [boolean $purge = false], [string $level = false])

Retrieve all errors since last purge

Parameters:

boolean   $purge     set in order to empty the error stack
string   $level     level name, to return only errors of a particular severity

[ Top ]

getFileLine   [line 834]

array|false getFileLine( unused $code, integer $params, [array $backtrace = null])

Standard file/line number/function/class context callback

This function uses a backtrace generated from http://www.php.net/debug_backtrace and so will not work at all in PHP < 4.3.0. The frame should reference the frame that contains the source of the error.

  • Return: either array('file' => file, 'line' => line, 'function' => function name, 'class' => class name) or if this doesn't work, then false

Parameters:

unused   $code     
integer   $params     backtrace frame.
array   $backtrace     Results of debug_backtrace()

[ Top ]

getMessageCallback   [line 349]

array|string|false getMessageCallback( )

Get an error code => error message mapping callback

This method returns the current callback that can be used to generate error messages

  • Return: Callback function/method or false if none

[ Top ]

hasErrors   [line 700]

boolean hasErrors( [string|array $level = false])

Determine whether there are any errors on the stack

Parameters:

string|array   $level     Level name. Use to determine if any errors of level (string), or levels (array) have been pushed

[ Top ]

pop   [line 665]

false|array pop( )

Pop an error off of the error stack
  • Since: 0.4alpha it is no longer possible to specify a specific error level to return - the last error pushed will be returned, instead

[ Top ]

popCallback   [line 419]

array|string|false popCallback( )

Remove a callback from the error callback stack

[ Top ]

push   [line 498]

PEAR_Error|array push( int $code, [string $level = 'error'], [array $params = array()], [string $msg = false], [array $repackage = false], [array $backtrace = false])

Add an error to the stack

If the message generator exists, it is called with 2 parameters.

  • the current Error Stack object
  • an array that is in the same format as an error. Available indices are 'code', 'package', 'time', 'params', 'level', and 'context'
Next, if the error should contain context information, this is handled by the context grabbing method. Finally, the error is pushed onto the proper error stack

  • Return:

    if compatibility mode is on, a PEAR_Error is also thrown. If a PEAR_Error is returned, the userinfo property is set to the following array:

    1.  array(
    2.     'code' => $code,
    3.     'params' => $params,
    4.     'package' => $this->_package,
    5.     'level' => $level,
    6.     'time' => time(),
    7.     'context' => $context,
    8.     'message' => $msg,
    9.  //['repackage' => $err] repackaged error array/Exception class
    10.  );

    Normally, the previous array is returned.


Parameters:

int   $code     Package-specific error code
string   $level     Error level. This is NOT spell-checked
array   $params     associative array of error parameters
string   $msg     Error message, or a portion of it if the message is to be generated
array   $repackage     If this error re-packages an error pushed by another package, place the array returned from pop() in this parameter
array   $backtrace     Protected parameter: use this to pass in the http://www.php.net/debug_backtrace that should be used to find error context

[ Top ]

pushCallback   [line 409]

void pushCallback( string|array $cb)

Set an error Callback If set to a valid callback, this will be called every time an error is pushed onto the stack. The return value will be used to determine whether to allow an error to be pushed or logged.

The return value must be one of the ERRORSTACK_* constants.

This functionality can be used to emulate PEAR's pushErrorHandling, and the PEAR_ERROR_CALLBACK mode, without affecting the integrity of the error stack or logging


Parameters:

string|array   $cb     

[ Top ]

raiseError   [line 976]

PEAR_Error raiseError( )

emulate PEAR::raiseError()

[ Top ]

setContextCallback   [line 380]

void setContextCallback( array|string|null $contextCallback)

Set a callback that generates context information (location of error) for an error stack

This method sets the callback that can be used to generate context information for an error. Passing in NULL will disable context generation and remove the expensive call to debug_backtrace()


Parameters:

array|string|null   $contextCallback     Callback function/method

[ Top ]

setDefaultCallback   [line 363]

void setDefaultCallback( [array|string $callback = false], [string $package = false])

Sets a default callback to be used by all error stacks

This method sets the callback that can be used to generate error messages for a singleton


Parameters:

array|string   $callback     Callback function/method
string   $package     Package name, or false for all packages

[ Top ]

setDefaultLogger   [line 302]

void setDefaultLogger( &$log, Log $log)

Set up a PEAR::Log object for all error stacks that don't have one

Parameters:

Log   $log     
   &$log     

[ Top ]

setErrorMessageTemplate   [line 965]

string setErrorMessageTemplate( $template)

Set the Error Message Template array

The array format must be:

 array(error code => 'message template',...)

Error message parameters passed into push() will be used as input for the error message. If the template is 'message %foo% was %bar%', and the parameters are array('foo' => 'one', 'bar' => 'six'), the error message returned will be 'message one was six'


Parameters:

   $template     

[ Top ]

setLogger   [line 315]

void setLogger( &$log, Log $log)

Set up a PEAR::Log object for this error stack

Parameters:

Log   $log     
   &$log     

[ Top ]

setMessageCallback   [line 331]

void setMessageCallback( array|string $msgCallback)

Set an error code => error message mapping callback

This method sets the callback that can be used to generate error messages for any instance


Parameters:

array|string   $msgCallback     Callback function/method

[ Top ]

singleton   [line 256]

PEAR_ErrorStack &singleton( string $package, [callback $msgCallback = false], [callback $contextCallback = false], [boolean $throwPEAR_Error = false], [string $stackClass = 'PEAR_ErrorStack'])

Return a single error stack for this package.

Note that all parameters are ignored if the stack for package $package has already been instantiated


Parameters:

string   $package     name of the package this error stack represents
callback   $msgCallback     callback used for error message generation
callback   $contextCallback     callback used for context generation, defaults to getFileLine()
boolean   $throwPEAR_Error     
string   $stackClass     class to instantiate

[ Top ]

staticGetErrors   [line 782]

array staticGetErrors( [boolean $purge = false], [string $level = false], [boolean $merge = false], [array $sortfunc = array('PEAR_ErrorStack', '_sortErrors')])

Get a list of all errors since last purge, organized by package
  • Since: PEAR 1.4.0dev BC break! $level is now in the place $merge used to be

Parameters:

boolean   $purge     Set to purge the error stack of existing errors
string   $level     Set to a level name in order to retrieve only errors of a particular level
boolean   $merge     Set to return a flat array, not organized by package
array   $sortfunc     Function used to sort a merged array - default sorts by time, and should be good for most cases

[ Top ]

staticHasErrors   [line 755]

boolean staticHasErrors( [string|false $package = false], [string $level = false])

Determine whether there are any errors on a single error stack, or on any error stack

The optional parameter can be used to test the existence of any errors without the need of singleton instantiation


Parameters:

string|false   $package     Package name to check for errors
string   $level     Level name to check for a particular severity

[ Top ]

staticPop   [line 684]

boolean staticPop( string $package)

Pop an error off of the error stack, static method
  • Since: PEAR1.5.0a1

Parameters:

string   $package     package name

[ Top ]

staticPopCallback   [line 448]

array|string|false staticPopCallback( )

Remove a temporary overriding error callback

[ Top ]

staticPush   [line 609]

PEAR_Error|array staticPush( string $package, int $code, [string $level = 'error'], [array $params = array()], [string $msg = false], [array $repackage = false], [array $backtrace = false])

Static version of push()
  • Return: if compatibility mode is on, a PEAR_Error is also thrown. see docs for push()

Parameters:

string   $package     Package name this error belongs to
int   $code     Package-specific error code
string   $level     Error level. This is NOT spell-checked
array   $params     associative array of error parameters
string   $msg     Error message, or a portion of it if the message is to be generated
array   $repackage     If this error re-packages an error pushed by another package, place the array returned from pop() in this parameter
array   $backtrace     Protected parameter: use this to pass in the http://www.php.net/debug_backtrace that should be used to find error context

[ Top ]

staticPushCallback   [line 437]

void staticPushCallback( string|array $cb)

Set a temporary overriding error callback for every package error stack

Use this to temporarily disable all existing callbacks (can be used to emulate the @ operator, for instance)


Parameters:

string|array   $cb     

[ Top ]

_log   [line 629]

void _log( array $err, array $levels)

Log an error using PEAR::Log
  • Access: protected

Parameters:

array   $err     Error array
array   $levels     Error level => Log constant map

[ Top ]


Documentation generated on Sat, 12 Jul 2014 14:00:43 +0000 by phpDocumentor 1.4.3. PEAR Logo Copyright © PHP Group 2004.