| Server IP : 89.108.64.180 / Your IP : 216.73.217.92 Web Server : Apache/2.4.41 (Ubuntu) System : Linux 89-108-64-180.cloudvps.regruhosting.ru 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : www-root ( 1010) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/fl-brief.agast.ru/wp-content/plugins/mailpoet/lib/ |
Upload File : |
<?php declare(strict_types = 1);
// phpcs:ignoreFile PSR1.Classes.ClassDeclaration
namespace MailPoet;
if (!defined('ABSPATH')) exit;
/**
* Provides information for converting exceptions to HTTP responses.
*/
interface HttpAwareException {
public function getHttpStatusCode(): int;
}
/**
* Frames all MailPoet exceptions ("$e instanceof MailPoet\Exception").
*/
abstract class Exception extends \Exception {
/** @var string[] */
private $errors = [];
final public function __construct($message = '', $code = 0, \Throwable $previous = null) {
parent::__construct($message, $code, $previous);
}
/** @return static */
public static function create(\Throwable $previous = null) {
return new static('', 0, $previous);
}
/** @return static */
public function withMessage(string $message) {
$this->message = $message;
return $this;
}
/** @return static */
public function withCode(int $code) {
$this->code = $code;
return $this;
}
/** @return static */
public function withErrors(array $errors) {
$this->errors = $errors;
return $this;
}
/** @return static */
public function withError(string $id, string $error) {
$this->errors[$id] = $error;
return $this;
}
public function getErrors(): array {
return $this->errors;
}
}
/**
* USE: Generic runtime error. When possible, use a more specific exception instead.
* API: 500 Server Error (not HTTP-aware)
*/
class RuntimeException extends Exception {}
/**
* USE: When wrong data VALUE is received.
* API: 400 Bad Request
*/
class UnexpectedValueException extends RuntimeException implements HttpAwareException {
public function getHttpStatusCode(): int {
return 400;
}
}
/**
* USE: When an action is forbidden for given actor (although generally valid).
* API: 403 Forbidden
*/
class AccessDeniedException extends UnexpectedValueException implements HttpAwareException {
public function getHttpStatusCode(): int {
return 403;
}
}
/**
* USE: When the main resource we're interested in doesn't exist.
* API: 404 Not Found
*/
class NotFoundException extends UnexpectedValueException implements HttpAwareException {
public function getHttpStatusCode(): int {
return 404;
}
}
/**
* USE: When the main action produces conflict (i.e. duplicate key).
* API: 409 Conflict
*/
class ConflictException extends UnexpectedValueException implements HttpAwareException {
public function getHttpStatusCode(): int {
return 409;
}
}
/**
* USE: An application state that should not occur. Can be subclassed for feature-specific exceptions.
* API: 500 Server Error (not HTTP-aware)
*/
class InvalidStateException extends RuntimeException {}
class NewsletterProcessingException extends Exception {}