GitHunt
GI

GinoPane/php-nano-http-status

Truly minimalistic and self-contained package to handle HTTP statuses and relevant description messages

PHP Nano Http Status

Latest Stable Version
Build Status
Maintainability
Test Coverage
Scrutinizer Code Quality
License
Total Downloads

Truly minimalistic and self-contained package to handle HTTP statuses and relevant description messages. Such packages as
Teapot or Httpstatus are nice and famous, but still
either too heavy and over-complicated or simply does not fit to Gino Pane's high code quality standards.

Requirements

  • PHP >= 7.0;

Features

  • The full list of HTTP status codes as readable constants;
  • relevant status messages;
  • ability to customize messages;
  • ability to easily detect the class of the status;
  • no dependencies in production;
  • integrated tools for code quality, testing and building docs.

Installation

composer require gino-pane/nano-http-status

Basic Usage

Check existence of the code (using numeric codes or nice readable constants):

(new NanoHttpStatus())->statusExists(200); //true
(new NanoHttpStatus())->statusExists(400); //true
(new NanoHttpStatus())->statusExists(451); //true
(new NanoHttpStatus())->statusExists(511); //true
(new NanoHttpStatus())->statusExists(522); //false

Detect the class of the code using code numbers:

(new NanoHttpStatus())->isInformational(NanoHttpStatus::HTTP_OK); //false
(new NanoHttpStatus())->isSuccess(202);         //true
(new NanoHttpStatus())->isRedirection(301);     //true
(new NanoHttpStatus())->isClientError(404);     //true
(new NanoHttpStatus())->isServerError(NanoHttpStatus::HTTP_BAD_REQUEST); //false

Get status message by status code:

(new NanoHttpStatus())->getMessage(200); //OK
(new NanoHttpStatus())->getMessage(451); //Unavailable For Legal Reasons
(new NanoHttpStatus())->getMessage(452); //Undefined Status

Set localization mapping and get custom status messages:

$status = new NanoHttpStatus([
    NanoHttpStatus::HTTP_BAD_REQUEST => 'Very bad request',
    NanoHttpStatus::HTTP_BAD_GATEWAY => 'Not so bad gateway'
]);

$status->getMessage(400); //'Very bad request'
$status->getMessage(502); //'Not so bad gateway'

Please note, that NanoHttpStatus itself does not throw any exceptions for invalid statuses.

Useful Tools

Running Tests:

php vendor/bin/phpunit

or

composer test

Code Sniffer Tool:

php vendor/bin/phpcs --standard=PSR2 src/

or

composer psr2check

Code Auto-fixer:

php vendor/bin/phpcbf --standard=PSR2 src/ 

or

composer psr2autofix

Building Docs:

php vendor/bin/phpdoc -d "src" -t "docs"

or

composer docs

Changelog

To keep track, please refer to CHANGELOG.md.

Contributing

  1. Fork it.
  2. Create your feature branch (git checkout -b my-new-feature).
  3. Make your changes.
  4. Run the tests, adding new ones for your own code if necessary (phpunit).
  5. Commit your changes (git commit -am 'Added some feature').
  6. Push to the branch (git push origin my-new-feature).
  7. Create new pull request.

Also please refer to CONTRIBUTION.md.

License

Please refer to LICENSE.

Notes

Powered by composer-package-template