You are here

class RealisticDummyContentException in Realistic Dummy Content 3.x

Same name and namespace in other branches
  1. 8.2 api/src/includes/RealisticDummyContentException.php \Drupal\realistic_dummy_content_api\includes\RealisticDummyContentException
  2. 7.2 api/src/includes/RealisticDummyContentException.php \Drupal\realistic_dummy_content_api\includes\RealisticDummyContentException

An Exception.

Hierarchy

Expanded class hierarchy of RealisticDummyContentException

File

api/src/includes/RealisticDummyContentException.php, line 16

Namespace

Drupal\realistic_dummy_content_api\includes
View source
class RealisticDummyContentException extends \Exception {

  /**
   * Constructor.
   */
  public function __construct($message) {
    parent::__construct($message);
    $this
      ->log();
  }

  /**
   * Logs a message.
   */
  public function log() {
    Framework::instance()
      ->debug($this
      ->getMessage() . ' (' . $this
      ->getCaller() . ' called ' . $this
      ->getCalled() . ')');
  }

  /**
   * Returns the calling function through a backtrace.
   */
  public static function getCaller() {

    // A funciton x has called a function y which called this
    // see stackoverflow.com/questions/190421.
    $caller = debug_backtrace();
    $caller = $caller[REALISTIC_DUMMY_CONTENT_API_EXCEPTION_BACKTRACE_LEVEL];
    $r = $caller['function'] . '()';
    if (isset($caller['class'])) {
      $r .= ' in ' . $caller['class'];
    }
    if (isset($caller['object'])) {
      $r .= ' (' . get_class($caller['object']) . ')';
    }
    return $r;
  }

  /**
   * Returns the called function through a backtrace.
   */
  public static function getCalled() {

    // Get caller will return the called function because the simple fact
    // of using another function will make the backtrace one-level deeper.
    return self::getCaller();
  }

}

Members

Namesort descending Modifiers Type Description Overrides
RealisticDummyContentException::getCalled public static function Returns the called function through a backtrace.
RealisticDummyContentException::getCaller public static function Returns the calling function through a backtrace.
RealisticDummyContentException::log public function Logs a message.
RealisticDummyContentException::__construct public function Constructor.