ergebnis/http-method

Provides constants for HTTP request methods.

Fund package maintenance!
localheinz


README

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);

💡 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?

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