Skip to content
🍇 Provides constants for HTTP request methods.
Branch: master
Clone or download
localheinz Merge pull request #29 from localheinz/feature/fig
Enhancement: List php-fig/http-message-util
Latest commit a185d3e Jul 4, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.dependabot Initial commit Jun 26, 2019
.github Enhancement: Add labels Jun 28, 2019
.travis Initial commit Jun 26, 2019
src Merge pull request #22 from localheinz/feature/web-dav Jun 30, 2019
test/Unit
.editorconfig Initial commit Jun 26, 2019
.gitattributes Initial commit Jun 26, 2019
.gitignore Initial commit Jun 26, 2019
.php_cs Initial commit Jun 26, 2019
.travis.yml Fix: No need to run build on PHP 7.2 twice Jun 28, 2019
CHANGELOG.md Enhancement: Update CHANGELOG.md Jul 3, 2019
LICENSE Initial commit Jun 26, 2019
Makefile Fix: Remove useless auto-review tests Jun 26, 2019
README.md Enhancement: List php-fig/http-message-util Jul 4, 2019
composer.json Bump phpstan/phpstan from 0.11.8 to 0.11.9 Jul 4, 2019
composer.lock Bump phpstan/phpstan from 0.11.8 to 0.11.9 Jul 4, 2019
phpstan.neon Initial commit Jun 26, 2019

README.md

http-method

Build Status Latest Stable Version Total Downloads

Provides constants for HTTP request methods, inspired by teapot/status-code.

Motivation

Several PHP frameworks and libraries come with their own abstractions of HTTP request and response objects. Some of them provide constants for

  • HTTP request method names
  • HTTP response status codes

so that a developer can refer to these by using named constants instead of magic numbers or magic strings.

Here are a few examples of HTTP request abstractions which provide constants for HTTP request methods:

Here are a few examples of HTTP response abstractions which provide constants for HTTP response status codes:

Here are a few examples of interfaces providing constants for HTTP request methods and HTTP response status codes:

However, a developer might use an abstraction that either does not provide any constants at all, or only provides a subset of the constants required for the specific case.

The excellent library teapot/status-code already provides HTTP status codes that are standardized by RFCs, as well as a range of vendor-specific HTTP status codes.

In a similar fashion, this library here aims to provide a collection of interfaces with constants for HTTP request methods that are standardized by RFCs, as well as additional vendor-specific HTTP request methods.

Installation

Run

$ composer require localheinz/http-method

Usage

The interface Localheinz\Http\Method provides constants for all of the HTTP request methods that are standardized by

namely

  • CONNECT
  • DELETE
  • GET
  • HEAD
  • OPTIONS
  • PATCH
  • POST
  • PUT
  • TRACE

The interface Localheinz\Http\Method\WebDav provides constants for all of the HTTP request methods that are standardized by

namely

  • ACL
  • BIND
  • CONNECT
  • COPY
  • DELETE
  • GET
  • HEAD
  • LOCK
  • MKCALENDAR
  • MKCOL
  • MKREDIRECTREF
  • MOVE
  • OPTIONS
  • ORDERPATCH
  • PATCH
  • POST
  • PROPFIND
  • PROPPATCH
  • PUT
  • REBIND
  • SEARCH
  • TRACE
  • UNBIND
  • UNLOCK
  • UPDATEREDIRECTREF

The interface Localheinz\Http\Method\Vendor\SquidCache provides constants for a suggest HTTP request method used for purging items from the cache, namely

  • PURGE

The interface Localheinz\Http\Method\Vendor\VarnishCache provides constants for a suggest HTTP request method used for invalidating and purging items from the cache, namely

  • BAN
  • PURGE

To use these constants, import the interfaces and refer to the constants instead of using magic strings:

use Localheinz\Http\Method;
use Psr\Http\Client;
use Psr\Http\Message;

/** @var Message\RequestFactoryInterface $requestFactory */
$request = $requestFactory->create(
    Method::GET,
    'https://localheinz.com/blog'
);

/** @var Client\ClientInterface $httpClient */
$httpClient->sendRequest($request);

💡 If you are aware of any other - either standardized or vendor-specific - HTTP methods that are used in the wild, please let me know!

Changelog

Please have a look at CHANGELOG.md.

Contributing

Please have a look at CONTRIBUTING.md.

Code of Conduct

Please have a look at CODE_OF_CONDUCT.md.

License

This package is licensed using the MIT License.

You can’t perform that action at this time.