[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/lib/horde/framework/Horde/Exception/ -> Pear.php (source)

   1  <?php
   2  /**
   3   * Horde exception class that converts PEAR errors to exceptions.
   4   *
   5   * Copyright 2008-2014 Horde LLC (http://www.horde.org/)
   6   *
   7   * See the enclosed file COPYING for license information (LGPL). If you
   8   * did not receive this file, see http://www.horde.org/licenses/lgpl21.
   9   *
  10   * @category Horde
  11   * @package  Exception
  12   */
  13  class Horde_Exception_Pear extends Horde_Exception
  14  {
  15      /**
  16       * The class name for generated exceptions.
  17       *
  18       * @var string
  19       */
  20      static protected $_class = __CLASS__;
  21  
  22      /**
  23       * Exception constructor.
  24       *
  25       * @param PEAR_Error $error The PEAR error.
  26       */
  27      public function __construct(PEAR_Error $error)
  28      {
  29          parent::__construct($error->getMessage(), $error->getCode());
  30          $this->details = $this->_getPearTrace($error);
  31      }
  32  
  33      /**
  34       * Return a trace for the PEAR error.
  35       *
  36       * @param PEAR_Error $error The PEAR error.
  37       *
  38       * @return string The backtrace as a string.
  39       */
  40      private function _getPearTrace(PEAR_Error $error)
  41      {
  42          $pear_error = '';
  43          $backtrace = $error->getBacktrace();
  44          if (!empty($backtrace)) {
  45              $pear_error .= 'PEAR backtrace:' . "\n\n";
  46              foreach ($backtrace as $frame) {
  47                  $pear_error .=
  48                        (isset($frame['class']) ? $frame['class'] : '')
  49                      . (isset($frame['type']) ? $frame['type'] : '')
  50                      . (isset($frame['function']) ? $frame['function'] : 'unkown') . ' '
  51                      . (isset($frame['file']) ? $frame['file'] : 'unkown') . ':'
  52                      . (isset($frame['line']) ? $frame['line'] : 'unkown') . "\n";
  53              }
  54          }
  55          $userinfo = $error->getUserInfo();
  56          if (!empty($userinfo)) {
  57              $pear_error .= "\n" . 'PEAR user info:' . "\n\n";
  58              if (is_string($userinfo)) {
  59                  $pear_error .= $userinfo;
  60              } else {
  61                  $pear_error .= print_r($userinfo, true);
  62              }
  63          }
  64          return $pear_error;
  65      }
  66  
  67      /**
  68       * Exception handling.
  69       *
  70       * @param mixed $result The result to be checked for a PEAR_Error.
  71       *
  72       * @return mixed Returns the original result if it was no PEAR_Error.
  73       *
  74       * @throws Horde_Exception_Pear In case the result was a PEAR_Error.
  75       */
  76      static public function catchError($result)
  77      {
  78          if ($result instanceOf PEAR_Error) {
  79              throw new self::$_class($result);
  80          }
  81          return $result;
  82      }
  83  }


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1