File "class-fontawesome-exception.php"
Full Path: /home/vantageo/public_html/cache/cache/cache/.wp-cli/wp-content/plugins/font-awesome/includes/class-fontawesome-exception.php
File size: 13.72 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Exceptions.
*/
namespace FortAwesome;
use \Exception;
// phpcs:disable Generic.Files.OneClassPerFile.MultipleFound
// phpcs:disable Generic.Files.OneObjectStructurePerFile.MultipleFound
/**
* An abstract class defining behavior for most exceptions thrown by this plugin.
*/
abstract class FontAwesome_Exception extends Exception {
/**
* A WP_Error object that was the occassion for this exception.
*
* Internal use only.
*
* @ignore
* @internal
*/
protected $wp_error = null;
/**
* An HTTP response array that is the occassion for this exception.
* Array keys should be like an array that would be returned from wp_remote_post().
*
* Internal use only.
*
* @ignore
* @internal
*/
protected $wp_response = null;
/**
* Construct an exception that includes a WP_Error that is the cause of the exception.
*
* Internal use only.
*
* @ignore
* @internal
*/
public static function with_wp_error( $wp_error ) {
// This is how we invoke the derived class's constructor from an inherited static method.
$obj = new static();
if ( ! is_null( $wp_error ) && is_a( $wp_error, 'WP_Error' ) ) {
$obj->wp_error = $wp_error;
}
return $obj;
}
/**
* Construct an exception with an associated HTTP response, the cause of the exception.
*
* Internal use only.
*
* @ignore
* @internal
* @param $wp_reponse a response array as would be returned by wp_remote_post()
* with keys like: 'headers', 'body', 'response'
*/
public static function with_wp_response( $wp_response ) {
// This is how we invoke the derived class's constructor from an inherited static method.
$obj = new static();
if (
! is_null( $wp_response ) &&
is_array( $wp_response ) &&
isset( $wp_response['headers'] ) &&
isset( $wp_response['body'] ) &&
isset( $wp_response['response'] )
) {
$obj->wp_response = $wp_response;
}
return $obj;
}
/**
* Construct an exception with a previously thrown Error or Exception.
*
* Internal use only.
*
* (The Throwable interface is not available until PHP 7, and we support back to 5.6.)
*
* @ignore
* @internal
* @param $e Error or Exception
*/
public static function with_thrown( $e ) {
return new static( null, 0, $e );
}
/**
* The WP_Error associated with this exception, if any.
*
* @since 4.0.0
* @return null|WP_Error
*/
public function get_wp_error() {
return $this->wp_error;
}
/**
* The response object associated with this exception, if any.
*
* @since 4.0.0
* @return null|array a response array as would be returned by wp_remote_post()
* with keys like: 'headers', 'body', 'response'.
*/
public function get_wp_response() {
return $this->wp_response;
}
}
/**
* An abstract parent class for exceptions that should result in an HTTP 500 status.
*
* @since 4.0.0
*/
abstract class FontAwesome_ServerException extends FontAwesome_Exception {}
/**
* An abstract parent class for exceptions that should result in an HTTP 400 status.
*
* @since 4.0.0
*/
abstract class FontAwesome_ClientException extends FontAwesome_Exception {}
/**
* Thrown when an API Token is required but not found.
*
* @since 4.0.0
*/
class ApiTokenMissingException extends FontAwesome_ClientException {
/**
* Internal use only.
*
* @ignore
* @internal
*/
public function __construct( $message = null, $code = 0, $previous = null ) {
return parent::__construct(
esc_html__(
'Whoops, it looks like you have not provided a Font Awesome API Token. Enter one on the Font Awesome plugin settings page.',
'font-awesome'
),
$code,
$previous
);
}
}
/**
* Thrown when the WordPress server fails to issue a request to the token endpoint
* on Font Awesome API server.
*
* @since 4.0.0
*/
class ApiTokenEndpointRequestException extends FontAwesome_ServerException {
/**
* Internal use only.
*
* @ignore
* @internal
*/
public function __construct( $message = null, $code = 0, $previous = null ) {
return parent::__construct(
esc_html__(
'Your WordPress server failed when trying to communicate with the Font Awesome API token endpoint.',
'font-awesome'
),
$code,
$previous
);
}
}
/**
* Thrown when the token endpoint on the Font Awesome API server returns an
* non-200 status when trying to use the configured API Token to get an access_token
* to use for subsequent API query requests.
*/
class ApiTokenInvalidException extends FontAwesome_ClientException {
/**
* Internal use only.
*
* @ignore
* @internal
*/
public function __construct( $message = null, $code = 0, $previous = null ) {
return parent::__construct(
esc_html__(
'Whoops, it looks like that API Token is not valid. Try another one?',
'font-awesome'
),
$code,
$previous
);
}
}
/**
* Thrown when the Font Awesome API server returns a response with an unexpected schema.
* This would probably indicate either a programming error in the API server, or a change
* in the schema such that the Font Awesome plugin's expectations are unmet.
*
* @since 4.0.0
*/
class ApiTokenEndpointResponseException extends FontAwesome_ServerException {
/**
* Internal use only.
*
* @ignore
* @internal
*/
public function __construct( $message = null, $code = 0, $previous = null ) {
return parent::__construct(
esc_html__(
'Oh no! It looks like your API Token was valid, but the Font Awesome API server returned an invalid response.',
'font-awesome'
),
$code,
$previous
);
}
}
/**
* Thrown when there is a failure to write a file on the WordPress server filesystem
* to store the access_token.
*
* @since 4.0.0
*/
class AccessTokenStorageException extends FontAwesome_ServerException {
/**
* Internal use only.
*
* @ignore
* @internal
*/
public function __construct( $message = null, $code = 0, $previous = null ) {
return parent::__construct(
esc_html__(
'Your API Token was valid but we couldn\'t save it for some reason.',
'font-awesome'
),
$code,
$previous
);
}
}
/**
* Thrown when an options configuration is attempted that does not pass validation.
*
* @since 4.0.0
*/
class ConfigSchemaException extends FontAwesome_ClientException {
/**
* Internal use only.
*
* @internal
* @ignore
*/
public static function webfont_always_enables_pseudo_elements() {
return new static(
esc_html__(
'Pseudo-elements cannot be disabled with webfont technology.',
'font-awesome'
)
);
}
/**
* Internal use only.
*
* @internal
* @ignore
*/
public static function kit_token_no_api_token() {
return new static(
esc_html__(
'A kitToken was given without a valid apiToken',
'font-awesome'
)
);
}
/**
* Internal use only.
*
* @internal
* @ignore
*/
public static function concrete_version_expected() {
return new static(
esc_html__(
'A Font Awesome version number was expected but not given',
'font-awesome'
)
);
}
/**
* Internal use only.
*
* @internal
* @ignore
*/
public static function webfont_v4compat_introduced_later() {
return new static(
esc_html__(
'Whoops! You found a corner case here. Older Version Compatibility for our webfont technology was not introduced until Font Awesome 5.1.0. Try using a newer version, disabling version 4 compatibility, or switch to SVG.',
'font-awesome'
)
);
}
/**
*
* @internal
* @ignore
*/
public static function v6_pro_cdn_not_supported() {
return new static(
esc_html__(
'Whoops! Font Awesome Pro Version 6 is not available from CDN. Please use a Kit.',
'font-awesome'
)
);
}
}
/**
* Thrown when the plugin is activated on a site that does not meet
* compatibility requirements.
*
* @since 4.2.0
*/
class ActivationException extends FontAwesome_ClientException {
/**
* Internal use only.
*
* @internal
* @ignore
*/
public static function multisite_requires_at_least_5_1_0() {
return new static(
esc_html__(
'This plugin supports WordPress Multisite only for WordPress versions 5.1.0 or newer.',
'font-awesome'
)
);
}
}
/**
* Thrown when catching an Error or Exception from a registered theme or plugin.
*
* @since 4.0.0
*/
class PreferenceRegistrationException extends FontAwesome_ServerException {
/**
* Internal use only.
*
* @ignore
* @internal
*/
public function __construct( $message = null, $code = 0, $previous = null ) {
return parent::__construct(
esc_html__(
'A theme or plugin registered with Font Awesome threw an exception.',
'font-awesome'
),
$code,
$previous
);
}
}
/**
* Thrown when the WordPress server fails to issue a request to the main query
* endpoint on Font Awesome API server.
*
* @since 4.0.0
*/
class ApiRequestException extends FontAwesome_ServerException {
/**
* Internal use only.
*
* @ignore
* @internal
*/
public function __construct( $message = null, $code = 0, $previous = null ) {
return parent::__construct(
esc_html__(
'Your WordPress server failed trying to send a request to the Font Awesome API server.',
'font-awesome'
),
$code,
$previous
);
}
}
/**
* Thrown when the query endpoint on the Font Awesome API server responds with
* an unexpected schema. This probably indicates either a programming error
* in the API server, or a breaking change and this plugin code is out of date.
*
* @since 4.0.0
*/
class ApiResponseException extends FontAwesome_ServerException {
/**
* Internal use only.
*
* @ignore
* @internal
*/
public function __construct( $message = null, $code = 0, $previous = null ) {
return parent::__construct(
esc_html__(
'An unexpected response was received from the Font Awesome API server.',
'font-awesome'
),
$code,
$previous
);
}
}
/**
* Thrown when there's a failure to write a transient for storing the Font Awesome
* releases metadata.
*
* @since 4.0.0
*/
class ReleaseProviderStorageException extends FontAwesome_ServerException {
/**
* Internal use only.
*
* @ignore
* @internal
*/
public function __construct( $message = null, $code = 0, $previous = null ) {
return parent::__construct(
esc_html__(
'Something went wrong when we tried to store the list of available Font Awesome versions in your WordPress database.',
'font-awesome'
),
$code,
$previous
);
}
}
/**
* Thrown when the plugin expects release metadata to be present but isn't for some reason.
*
* @since 4.0.0
*/
class ReleaseMetadataMissingException extends FontAwesome_ServerException {
/**
* Internal use only.
*
* @ignore
* @internal
*/
public function __construct( $message = null, $code = 0, $previous = null ) {
return parent::__construct(
esc_html__(
'Eek! We\'re missing the information we need to load the version of Font Awesome you have selected. Go to your Font Awesome plugin settings page, re-select a version, and save. If that doesn\'t work, try deactivating and then re-activating the plugin. If that doesn\'t work either, you might need to delete and re-install the plug-in.',
'font-awesome'
),
$code,
$previous
);
}
}
/**
* Thrown when attempting front-end page load logic and the options configuration
* is invalid. This should never happen, since only valid options configurations
* should ever be stored. If it is thrown it probably means that either there's
* a programming error in this plugin, or that the state of database has been
* changed between the time that options would have been valid upon saving and
* the time that the page load occurs and those options are found to be invalid.
*
* @since 4.0.0
*/
class ConfigCorruptionException extends FontAwesome_ServerException {
/**
* Internal use only.
*
* @ignore
* @internal
*/
public function __construct( $message = null, $code = 0, $previous = null ) {
return parent::__construct(
esc_html__(
'When trying to load Font Awesome, the plugin\'s configuration was invalid. Try deactivating, uninstalling, and re-activating the Font Awesome plugin.',
'font-awesome'
),
$code,
$previous
);
}
}
/**
* Thrown when the conflict detection scanner posts data to a REST endpoint and
* the data has an invalid schema. This would probably indicate a programming
* error in this plugin.
*
* @since 4.0.0
*/
class ConflictDetectionSchemaException extends FontAwesome_ClientException {
/**
* Internal use only.
*
* @ignore
* @internal
*/
public function __construct( $message = null, $code = 0, $previous = null ) {
return parent::__construct(
esc_html__(
'Inconceivable! Somehow the conflict detection information got garbled into something we can\'t understand.',
'font-awesome'
),
$code,
$previous
);
}
}
/**
* Thrown when there's a failure to store conflict detection data as a transient.
*
* @since 4.0.0
*/
class ConflictDetectionStorageException extends FontAwesome_ServerException {
/**
* Internal use only.
*
* @ignore
* @internal
*/
public function __construct( $message = null, $code = 0, $previous = null ) {
return parent::__construct(
esc_html__(
'We were not able to save conflict detection data to your WordPress database.',
'font-awesome'
),
$code,
$previous
);
}
}
/**
* Indicates that an incorrect array schema has been provided by a registerd client.
*
* See the `$client preferences` parameter schema for {@see FontAwesome::register()}.
*
* @since 4.0.0
*/
class ClientPreferencesSchemaException extends FontAwesome_ServerException {}
/**
* Indicates a problem during upgrade process.
*
* @since 4.0.0
*/
class UpgradeException extends FontAwesome_ServerException {
/**
* Internal use only.
*
* @internal
* @ignore
*/
public static function main_option_delete() {
return new static(
esc_html__(
'Failed during upgrade when trying to delete the main Font Awesome option.',
'font-awesome'
)
);
}
}