Installs: 3 140
Dependents: 6
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=5.6.0
Requires (Dev)
- codeclimate/php-test-reporter: ^0.3.2
- phpunit/phpunit: ^5.5
This package is not auto-updated.
Last update: 2024-11-10 02:15:35 UTC
README
An exception library that can be used to bubble up specific http errors through middleware.
Installation
It's recommended that you use Composer to install peel.
$ composer require avalanche-development/peel
peel requires PHP 5.6 or newer.
Usage
function someMiddleware($request, $response, $next) { $body = (string) $request->getBody(); $body = json_decode($value); if (json_last_error() !== JSON_ERROR_NONE) { throw new AvalancheDevelopment\Peel\HttpError\BadRequest('Invalid JSON'); } // etc }
Each exception implements AvalancheDevelopment\Peel\HttpErrorInterface
, which enforces two methods, getStatusCode
and getStatusMessage
. These give you the expected HTTP code and message for any sort of error handler.
Exceptions
- BadRequest 400
- Unauthorized 401
- PaymentRequired 402
- Forbidden 403
- NotFound 404
- MethodNotAllowed 405
- NotAcceptable 406
- ProxyAuthenticationRequired 407
- RequestTimeout 408
- Conflict 409
- Gone 410
- LengthRequired 411
- PreconditionFailed 412
- RequestEntityTooLarge 413
- RequestUriTooLong 414
- UnsupportedMediaType 415
- RequestedRangeNotSatisfiable 416
- ExpectationFailed 417
- UnprocessableEntity 422
- Locked 423
- PreconditionRequired 428
- TooManyRequests 429
- RequestHeaderFieldsTooLarge 431
- UnavailableForLegalReasons 451
- InternalServerError 500
- NotImplemented 501
- BadGateway 502
- ServiceUnavailable 503
- GatewayTimeout 504
Note: see avalanche-development/crash-pad for an error handler that takes advantage of these standardized exceptions.
Development
This library is a work in progress - there may be additional options (like, error metadata) added for different statuses as needed.
Tests
To execute the test suite, you'll need phpunit (and to install package with dev dependencies).
$ phpunit
License
peel is licensed under the MIT license. See License File for more information.