ergebnis / http-method
提供HTTP请求方法的常量。
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
该项目提供了一个包含HTTP请求方法常量的composer包。
动机
许多PHP框架和包都带有自己HTTP请求和响应对象的抽象。其中一些提供了
- HTTP请求方法名称
- HTTP响应状态码
的常量,以便开发人员可以使用命名常量而不是魔法数字或魔法字符串来引用。
以下是几个提供HTTP请求方法常量的HTTP请求抽象示例
以下是提供HTTP响应状态码常量的HTTP响应抽象的几个示例
以下是提供HTTP请求方法和HTTP响应状态码常量的接口的几个示例
然而,开发人员可能会使用一个既不提供任何常量,或只提供特定情况所需常量子集的抽象。
优秀的库teapot/status-code已经提供了由RFC标准化的HTTP状态码,以及一系列供应商特定的HTTP状态码。
类似地,这个库旨在提供一组接口,其中包含由RFC标准化的HTTP请求方法常量,以及额外的供应商特定的HTTP请求方法。
安装
运行
composer require ergebnis/http-method
用法
接口Ergebnis\Http\Method为以下由RFC 5789和RFC 7231标准化的所有HTTP请求方法提供了常量
即
CONNECTDELETEGETHEADOPTIONSPATCHPOSTPUTTRACE
接口Ergebnis\Http\Method\WebDav为以下由RFC 3648、RFC 3744、RFC 4437、RFC 4791、RFC 4918、RFC 5323和RFC 5842标准化的所有HTTP请求方法提供了常量
即
ACLBINDCONNECTCOPYDELETEGETHEADLOCKMKCALENDARMKCOLMKREDIRECTREFMOVEOPTIONSORDERPATCHPATCHPOSTPROPFINDPROPPATCHPUTREBINDSEARCHTRACEUNBINDUNLOCKUPDATEREDIRECTREF
接口Ergebnis\Http\Method\Vendor\SquidCache为以下用于从缓存中清除项的建议HTTP请求方法提供了常量
PURGE
接口Ergebnis\Http\Method\Vendor\VarnishCache为以下用于使缓存中的项失效和清除的建议HTTP请求方法提供了常量
BANPURGE
要使用这些常量,请导入接口并引用常量,而不是使用魔法字符串
<?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);
💡 如果您知道任何其他在野外使用的HTTP方法,无论是标准化的还是厂商特定的,请告诉我!
更新日志
本项目维护者将本项目的重要变更记录在 更新日志 中。
贡献
本项目维护者建议遵循 贡献指南。
行为准则
本项目维护者要求贡献者遵循 行为准则。
一般支持政策
本项目提供有限的支持。
您可以通过 赞助 @localheinz 或 申请与本项目相关的服务发票 来支持本项目的维护。
PHP版本支持政策
本项目支持拥有 活动和安全支持 的PHP版本。
本项目维护者在其初始发布后添加对PHP版本的支持,并在其安全支持结束时停止对该PHP版本的支持。
安全策略
本项目有一个 安全政策。
许可
本项目使用 MIT许可。
社交
关注Twitter上的 @localheinz 和 @ergebnis。