You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
cosmopet-architecture/dup-installer/classes/utilities/class.u.exceptions.php

89 lines
2.0 KiB

<?php
/**
* Custom exceptions
*
* Standard: PSR-2
*
* @link http://www.php-fig.org/psr/psr-2 Full Documentation
*
* @package SC\DUPX\U
*/
defined('ABSPATH') || defined('DUPXABSPATH') || exit;
/**
* Dup installer custom exception
*/
class DupxException extends Exception
{
/**
*
* @var string // formatted html string
*/
protected $longMsg = '';
protected $faqLink = false;
/**
*
* @param type $shortMsg
* @param type $longMsg
* @param type $faqLinkUrl
* @param type $faqLinkLabel
* @param type $code
* @param Exception $previous
*/
public function __construct($shortMsg, $longMsg = '', $faqLinkUrl = '', $faqLinkLabel = '', $code = 0, Exception $previous = null)
{
parent::__construct($shortMsg, $code, $previous);
$this->longMsg = (string) $longMsg;
if (!empty($faqLinkUrl)) {
$this->faqLink = array(
'url' => $faqLinkUrl,
'label' => $faqLinkLabel
);
}
}
public function getLongMsg()
{
return $this->longMsg;
}
public function haveFaqLink()
{
return $this->faqLink !== false;
}
public function getFaqLinkUrl()
{
if ($this->haveFaqLink()) {
return $this->faqLink['url'];
} else {
return '';
}
}
public function getFaqLinkLabel()
{
if ($this->haveFaqLink()) {
return $this->faqLink['label'];
} else {
return '';
}
}
// custom string representation of object
public function __toString()
{
$result = __CLASS__ . ": [{$this->code}]: {$this->message}";
if ($this->haveFaqLink()) {
$result .= "\n\tSee FAQ " . $this->faqLink['label'] . ': ' . $this->faqLink['url'];
}
if (!empty($this->longMsg)) {
$result .= "\n\t" . strip_tags($this->longMsg);
}
$result .= "\n";
return $result;
}
}