http-method icon indicating copy to clipboard operation
http-method copied to clipboard

📟 Provides a composer package with constants for HTTP request methods.

http-method

Integrate Merge Prune Release Renew Triage

Type Coverage

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 ergebnis/http-method

Usage

The interface Ergebnis\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 Ergebnis\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 Ergebnis\Http\Method\Vendor\SquidCache provides constants for a suggest HTTP request method used for purging items from the cache, namely

  • PURGE

The interface Ergebnis\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:

<?php

use Ergebnis\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);

:bulb: 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.

Please have a look at LICENSE.md.

Curious what I am building?

:mailbox_with_mail: Subscribe to my list, and I will occasionally send you an email to let you know what I am working on.