- <?php
- /**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- */
-
- namespace Zend\Stdlib;
-
- use ErrorException;
-
- /**
- * ErrorHandler that can be used to catch internal PHP errors
- * and convert to a ErrorException instance.
- */
- abstract class ErrorHandler
- {
- /**
- * Active stack
- *
- * @var array
- */
- protected static $stack = array();
-
- /**
- * Check if this error handler is active
- *
- * @return bool
- */
- public static function started()
- {
- return (bool) static::getNestedLevel();
- }
-
- /**
- * Get the current nested level
- *
- * @return int
- */
- public static function getNestedLevel()
- {
- return count(static::$stack);
- }
-
- /**
- * Starting the error handler
- *
- * @param int $errorLevel
- */
- public static function start($errorLevel = \E_WARNING)
- {
- if (!static::$stack) {
- set_error_handler(array(get_called_class(), 'addError'), $errorLevel);
- }
-
- static::$stack[] = null;
- }
-
- /**
- * Stopping the error handler
- *
- * @param bool $throw Throw the ErrorException if any
- * @return null|ErrorException
- * @throws ErrorException If an error has been catched and $throw is true
- */
- public static function stop($throw = false)
- {
- $errorException = null;
-
- if (static::$stack) {
- $errorException = array_pop(static::$stack);
-
- if (!static::$stack) {
- restore_error_handler();
- }
-
- if ($errorException && $throw) {
- throw $errorException;
- }
- }
-
- return $errorException;
- }
-
- /**
- * Stop all active handler
- *
- * @return void
- */
- public static function clean()
- {
- if (static::$stack) {
- restore_error_handler();
- }
-
- static::$stack = array();
- }
-
- /**
- * Add an error to the stack
- *
- * @param int $errno
- * @param string $errstr
- * @param string $errfile
- * @param int $errline
- * @return void
- */
- public static function addError($errno, $errstr = '', $errfile = '', $errline = 0)
- {
- $stack = & static::$stack[count(static::$stack) - 1];
- $stack = new ErrorException($errstr, 0, $errno, $errfile, $errline, $stack);
- }
- }
# |
Change |
User |
Description |
Committed |
|
#1
|
18334 |
Liz Lam |
initial add of jambox |
9 years ago
|
|