Exceptions
in package
Uses
ResponseTrait
Exceptions manager
Table of Contents
- $ob_level : int
- Nesting level of the output buffering mechanism
- $codes : array<string|int, mixed>
- Allows child classes to override the status code that is used in their API.
- $config : Exceptions
- Config for debug exceptions.
- $format : string
- How to format the response data.
- $formatter : FormatterInterface
- Current Formatter instance. This is usually set by ResponseTrait::format
- $request : IncomingRequest
- The incoming request.
- $response : Response
- The outgoing response.
- $viewPath : string
- The path to the directory containing the cli and html error view directories.
- __construct() : mixed
- Constructor.
- cleanPath() : string
- Clean Path
- describeMemory() : string
- Describes memory usage in real-world units. Intended for use with memory_get_usage, etc.
- errorHandler() : mixed
- Even in PHP7, some errors make it through to the errorHandler, so convert these to Exceptions and let the exception handler log it and display it.
- exceptionHandler() : mixed
- Catches any uncaught errors and exceptions, including most Fatal errors (Yay PHP7!). Will log the error, display it if display_errors is on, and fire an event that allows custom actions to be taken at this point.
- fail() : mixed
- Used for generic failures that no custom methods exist for.
- failForbidden() : mixed
- Used when access is always denied to this resource and no amount of trying again will help.
- failNotFound() : mixed
- Used when a specified resource cannot be found.
- failResourceExists() : mixed
- Use when trying to create a new resource and it already exists.
- failResourceGone() : mixed
- Use when a resource was previously deleted. This is different than Not Found, because here we know the data previously existed, but is now gone, where Not Found means we simply cannot find any information about it.
- failServerError() : Response
- Used when there is a server error.
- failTooManyRequests() : mixed
- Used when the user has made too many requests for the resource recently.
- failUnauthorized() : mixed
- Used when the client is either didn't send authorization information, or had bad authorization credentials. User is encouraged to try again with the proper information.
- failValidationError() : mixed
- Used when the data provided by the client cannot be validated.
- failValidationErrors() : mixed
- Used when the data provided by the client cannot be validated on one or more fields.
- highlightFile() : bool|string
- Creates a syntax-highlighted version of a PHP file.
- initialize() : mixed
- Responsible for registering the error, exception and shutdown handling of our application.
- respond() : mixed
- Provides a single, simple method to return an API response, formatted to match the requested format, with proper content-type and status code.
- respondCreated() : mixed
- Used after successfully creating a new resource.
- respondDeleted() : mixed
- Used after a resource has been successfully deleted.
- respondNoContent() : mixed
- Used after a command has been successfully executed but there is no meaningful reply to send back to the client.
- respondUpdated() : mixed
- Used after a resource has been successfully updated.
- setResponseFormat() : $this
- Sets the format the response should be in.
- shutdownHandler() : mixed
- Checks to see if any errors have happened during shutdown that need to be caught and handle them.
- collectVars() : array<string|int, mixed>
- Gathers the variables that will be made available to the view.
- determineCodes() : array<string|int, mixed>
- Determines the HTTP status code and the exit status code for this request.
- determineView() : string
- Determines the view to display based on the exception thrown, whether an HTTP or CLI request, etc.
- format() : string|null
- Handles formatting a response. Currently makes some heavy assumptions and needs updating! :)
- maskSensitiveData() : mixed
- Mask sensitive data in the trace.
- render() : mixed
- Given an exception and status code will display the error to the client.
Properties
$ob_level
Nesting level of the output buffering mechanism
public
int
$ob_level
$codes
Allows child classes to override the status code that is used in their API.
protected
array<string|int, mixed>
$codes
= ['created' => 201, 'deleted' => 200, 'updated' => 200, 'no_content' => 204, 'invalid_request' => 400, 'unsupported_response_type' => 400, 'invalid_scope' => 400, 'temporarily_unavailable' => 400, 'invalid_grant' => 400, 'invalid_credentials' => 400, 'invalid_refresh' => 400, 'no_data' => 400, 'invalid_data' => 400, 'access_denied' => 401, 'unauthorized' => 401, 'invalid_client' => 401, 'forbidden' => 403, 'resource_not_found' => 404, 'not_acceptable' => 406, 'resource_exists' => 409, 'conflict' => 409, 'resource_gone' => 410, 'payload_too_large' => 413, 'unsupported_media_type' => 415, 'too_many_requests' => 429, 'server_error' => 500, 'unsupported_grant_type' => 501, 'not_implemented' => 501]
$config
Config for debug exceptions.
protected
Exceptions
$config
$format
How to format the response data.
protected
string
$format
= 'json'
Either 'json' or 'xml'. If blank will be determine through content negotiation.
$formatter
Current Formatter instance. This is usually set by ResponseTrait::format
protected
FormatterInterface
$formatter
$request
The incoming request.
protected
IncomingRequest
$request
$response
The outgoing response.
protected
Response
$response
$viewPath
The path to the directory containing the cli and html error view directories.
protected
string
$viewPath
Methods
__construct()
Constructor.
public
__construct(Exceptions $config, IncomingRequest $request, Response $response) : mixed
Parameters
- $config : Exceptions
- $request : IncomingRequest
- $response : Response
Return values
mixed —cleanPath()
Clean Path
public
static cleanPath(string $file) : string
This makes nicer looking paths for the error output.
Parameters
- $file : string
Return values
string —describeMemory()
Describes memory usage in real-world units. Intended for use with memory_get_usage, etc.
public
static describeMemory(int $bytes) : string
Parameters
- $bytes : int
Return values
string —errorHandler()
Even in PHP7, some errors make it through to the errorHandler, so convert these to Exceptions and let the exception handler log it and display it.
public
errorHandler(int $severity, string $message[, string|null $file = null ][, int|null $line = null ]) : mixed
This seems to be primarily when a user triggers it with trigger_error().
Parameters
- $severity : int
- $message : string
- $file : string|null = null
- $line : int|null = null
Tags
Return values
mixed —exceptionHandler()
Catches any uncaught errors and exceptions, including most Fatal errors (Yay PHP7!). Will log the error, display it if display_errors is on, and fire an event that allows custom actions to be taken at this point.
public
exceptionHandler(Throwable $exception) : mixed
Parameters
- $exception : Throwable
Tags
Return values
mixed —fail()
Used for generic failures that no custom methods exist for.
public
fail(string|array<string|int, mixed> $messages[, int $status = 400 ][, string|null $code = null ][, string $customMessage = '' ]) : mixed
Parameters
- $messages : string|array<string|int, mixed>
- $status : int = 400
-
HTTP status code
- $code : string|null = null
-
Custom, API-specific, error code
- $customMessage : string = ''
Return values
mixed —failForbidden()
Used when access is always denied to this resource and no amount of trying again will help.
public
failForbidden([string $description = 'Forbidden' ][, string $code = null ][, string $message = '' ]) : mixed
Parameters
- $description : string = 'Forbidden'
- $code : string = null
- $message : string = ''
Return values
mixed —failNotFound()
Used when a specified resource cannot be found.
public
failNotFound([string $description = 'Not Found' ][, string $code = null ][, string $message = '' ]) : mixed
Parameters
- $description : string = 'Not Found'
- $code : string = null
- $message : string = ''
Return values
mixed —failResourceExists()
Use when trying to create a new resource and it already exists.
public
failResourceExists([string $description = 'Conflict' ][, string $code = null ][, string $message = '' ]) : mixed
Parameters
- $description : string = 'Conflict'
- $code : string = null
- $message : string = ''
Return values
mixed —failResourceGone()
Use when a resource was previously deleted. This is different than Not Found, because here we know the data previously existed, but is now gone, where Not Found means we simply cannot find any information about it.
public
failResourceGone([string $description = 'Gone' ][, string $code = null ][, string $message = '' ]) : mixed
Parameters
- $description : string = 'Gone'
- $code : string = null
- $message : string = ''
Return values
mixed —failServerError()
Used when there is a server error.
public
failServerError([string $description = 'Internal Server Error' ][, string|null $code = null ][, string $message = '' ]) : Response
Parameters
- $description : string = 'Internal Server Error'
-
The error message to show the user.
- $code : string|null = null
-
A custom, API-specific, error code.
- $message : string = ''
-
A custom "reason" message to return.
Return values
Response —The value of the Response's send() method.
failTooManyRequests()
Used when the user has made too many requests for the resource recently.
public
failTooManyRequests([string $description = 'Too Many Requests' ][, string $code = null ][, string $message = '' ]) : mixed
Parameters
- $description : string = 'Too Many Requests'
- $code : string = null
- $message : string = ''
Return values
mixed —failUnauthorized()
Used when the client is either didn't send authorization information, or had bad authorization credentials. User is encouraged to try again with the proper information.
public
failUnauthorized([string $description = 'Unauthorized' ][, string $code = null ][, string $message = '' ]) : mixed
Parameters
- $description : string = 'Unauthorized'
- $code : string = null
- $message : string = ''
Return values
mixed —failValidationError()
Used when the data provided by the client cannot be validated.
public
failValidationError([string $description = 'Bad Request' ][, string $code = null ][, string $message = '' ]) : mixed
Parameters
- $description : string = 'Bad Request'
- $code : string = null
- $message : string = ''
Tags
Return values
mixed —failValidationErrors()
Used when the data provided by the client cannot be validated on one or more fields.
public
failValidationErrors(string|array<string|int, string> $errors[, string|null $code = null ][, string $message = '' ]) : mixed
Parameters
- $errors : string|array<string|int, string>
- $code : string|null = null
- $message : string = ''
Return values
mixed —highlightFile()
Creates a syntax-highlighted version of a PHP file.
public
static highlightFile(string $file, int $lineNumber[, int $lines = 15 ]) : bool|string
Parameters
- $file : string
- $lineNumber : int
- $lines : int = 15
Return values
bool|string —initialize()
Responsible for registering the error, exception and shutdown handling of our application.
public
initialize() : mixed
Return values
mixed —respond()
Provides a single, simple method to return an API response, formatted to match the requested format, with proper content-type and status code.
public
respond([array<string|int, mixed>|string|null $data = null ][, int $status = null ][, string $message = '' ]) : mixed
Parameters
- $data : array<string|int, mixed>|string|null = null
- $status : int = null
- $message : string = ''
Return values
mixed —respondCreated()
Used after successfully creating a new resource.
public
respondCreated([mixed $data = null ][, string $message = '' ]) : mixed
Parameters
- $data : mixed = null
-
Data.
- $message : string = ''
-
Message.
Return values
mixed —respondDeleted()
Used after a resource has been successfully deleted.
public
respondDeleted([mixed $data = null ][, string $message = '' ]) : mixed
Parameters
- $data : mixed = null
-
Data.
- $message : string = ''
-
Message.
Return values
mixed —respondNoContent()
Used after a command has been successfully executed but there is no meaningful reply to send back to the client.
public
respondNoContent([string $message = 'No Content' ]) : mixed
Parameters
- $message : string = 'No Content'
-
Message.
Return values
mixed —respondUpdated()
Used after a resource has been successfully updated.
public
respondUpdated([mixed $data = null ][, string $message = '' ]) : mixed
Parameters
- $data : mixed = null
-
Data.
- $message : string = ''
-
Message.
Return values
mixed —setResponseFormat()
Sets the format the response should be in.
public
setResponseFormat([string $format = null ]) : $this
Parameters
- $format : string = null
Return values
$this —shutdownHandler()
Checks to see if any errors have happened during shutdown that need to be caught and handle them.
public
shutdownHandler() : mixed
Return values
mixed —collectVars()
Gathers the variables that will be made available to the view.
protected
collectVars(Throwable $exception, int $statusCode) : array<string|int, mixed>
Parameters
- $exception : Throwable
- $statusCode : int
Return values
array<string|int, mixed> —determineCodes()
Determines the HTTP status code and the exit status code for this request.
protected
determineCodes(Throwable $exception) : array<string|int, mixed>
Parameters
- $exception : Throwable
Return values
array<string|int, mixed> —determineView()
Determines the view to display based on the exception thrown, whether an HTTP or CLI request, etc.
protected
determineView(Throwable $exception, string $templatePath) : string
Parameters
- $exception : Throwable
- $templatePath : string
Return values
string —The path and filename of the view file to use
format()
Handles formatting a response. Currently makes some heavy assumptions and needs updating! :)
protected
format([string|array<string|int, mixed>|null $data = null ]) : string|null
Parameters
- $data : string|array<string|int, mixed>|null = null
Return values
string|null —maskSensitiveData()
Mask sensitive data in the trace.
protected
maskSensitiveData(array<string|int, mixed>|object &$trace, array<string|int, mixed> $keysToMask[, string $path = '' ]) : mixed
Parameters
- $trace : array<string|int, mixed>|object
- $keysToMask : array<string|int, mixed>
- $path : string = ''
Return values
mixed —render()
Given an exception and status code will display the error to the client.
protected
render(Throwable $exception, int $statusCode) : mixed
Parameters
- $exception : Throwable
- $statusCode : int