localheinz / http-method
Provides constants for HTTP request methods.
Installs: 3 560
Dependents: 0
Suggesters: 0
Security: 0
Stars: 92
Watchers: 4
Forks: 2
Open Issues: 0
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.39.0
- ergebnis/license: ^2.3.0
- ergebnis/php-cs-fixer-config: ^6.12.0
- ergebnis/phpunit-slow-test-detector: ^2.4.0
- phpunit/phpunit: ^10.4.2
- psalm/plugin-phpunit: ~0.18.4
- rector/rector: ~0.18.11
- vimeo/psalm: ^5.16.0
README
This project provides a composer
package with constants for HTTP request methods.
Motivation
Several PHP frameworks and packages 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 declare(strict_types=1); use Ergebnis\Http\Method; use Psr\Http\Client; use Psr\Http\Message; /** @var Message\RequestFactoryInterface $requestFactory */ $request = $requestFactory->create( Method::GET, 'https://localheinz.com/articles/' ); /** @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
The maintainers of this project record notable changes to this project in a changelog.
Contributing
The maintainers of this project suggest following the contribution guide.
Code of Conduct
The maintainers of this project ask contributors to follow the code of conduct.
General Support Policy
The maintainers of this project provide limited support.
You can support the maintenance of this project by sponsoring @localheinz or requesting an invoice for services related to this project.
PHP Version Support Policy
This project supports PHP versions with active and security support.
The maintainers of this project add support for a PHP version following its initial release and drop support for a PHP version when it has reached the end of security support.
Security Policy
This project has a security policy.
License
This project uses the MIT license.
Social
Follow @localheinz and @ergebnis on Twitter.