narrowspark/http-status
最新稳定版本:4.1.0
Composer 安装命令:
composer require narrowspark/http-status
包简介
A psr-7 package for working with HTTP statuses.
README 文档
README
A package for working with HTTP statuses.
Installation
Via Composer
$ composer require narrowspark/http-status
Use
use Narrowspark\HttpStatus\Contract\Exception\HttpException as HttpExceptionContract; use Narrowspark\HttpStatus\HttpStatus; // get status message from code echo HttpStatus::getReasonMessage(301); // This and all future requests should be directed to the given URI. try { HttpStatus::getReasonException(301): } catch(HttpExceptionContract $e) { echo $e->getMessage(); // 301 Moved Permanently echo $e->getStatusCode(); // 301 }
Now we have support for (http-message-util) so you can do something like this:
use Narrowspark\HttpStatus\HttpStatus; // get status name from code echo HttpStatus::getReasonPhrase(HttpStatus::STATUS_MOVED_PERMANENTLY); // Moved Permanently
HTTP status code classes (from RFC7231)
The first digit of the status-code defines the class of response. The last two digits do not have any categorization role. There are five values for the first digit:
| Digit | Category | Meaning |
|---|---|---|
| 1xx | Informational | The request was received, continuing process |
| 2xx | Successful | The request was successfully received, understood, and accepted |
| 3xx | Redirection | Further action needs to be taken in order to complete the request |
| 4xx | Client Error | The request contains bad syntax or cannot be fulfilled |
| 5xx | Server Error | The server failed to fulfill an apparently valid request |
Available HTTP status codes
| Code | Message | RFC |
|---|---|---|
| 100 | Continue | [RFC7231, Section 6.2.1] |
| 101 | Switching Protocols | [RFC7231, Section 6.2.2] |
| 102 | Processing | [RFC2518] |
| 103 | Http Early Hints | [RFC8297] |
| 104-199 | Unassigned | |
| 200 | OK | [RFC7231, Section 6.3.1] |
| 201 | Created | [RFC7231, Section 6.3.2] |
| 202 | Accepted | [RFC7231, Section 6.3.3] |
| 203 | Non-Authoritative Information | [RFC7231, Section 6.3.4] |
| 204 | No Content | [RFC7231, Section 6.3.5] |
| 205 | Reset Content | [RFC7231, Section 6.3.6] |
| 206 | Partial Content | [RFC7233, Section 4.1] |
| 207 | Multi-Status | [RFC4918] |
| 208 | Already Reported | [RFC5842] |
| 209-225 | Unassigned | |
| 226 | IM Used | [RFC3229] |
| 227-299 | Unassigned | |
| 300 | Multiple Choices | [RFC7231, Section 6.4.1] |
| 301 | Moved Permanently | [RFC7231, Section 6.4.2] |
| 302 | Found | [RFC7231, Section 6.4.3] |
| 303 | See Other | [RFC7231, Section 6.4.4] |
| 304 | Not Modified | [RFC7232, Section 4.1] |
| 305 | Use Proxy | [RFC7231, Section 6.4.5] |
| 306 | (Unused) | [RFC7231, Section 6.4.6] |
| 307 | Temporary Redirect | [RFC7231, Section 6.4.7] |
| 308 | Permanent Redirect | [RFC7538] |
| 309-399 | Unassigned | |
| 400 | Bad Request | [RFC7231, Section 6.5.1] |
| 401 | Unauthorized | [RFC7235, Section 3.1] |
| 402 | Payment Required | [RFC7231, Section 6.5.2] |
| 403 | Forbidden | [RFC7231, Section 6.5.3] |
| 404 | Not Found | [RFC7231, Section 6.5.4] |
| 405 | Method Not Allowed | [RFC7231, Section 6.5.5] |
| 406 | Not Acceptable | [RFC7231, Section 6.5.6] |
| 407 | Proxy Authentication Required | [RFC7235, Section 3.2] |
| 408 | Request Timeout | [RFC7231, Section 6.5.7] |
| 409 | Conflict | [RFC7231, Section 6.5.8] |
| 410 | Gone | [RFC7231, Section 6.5.9] |
| 411 | Length Required | [RFC7231, Section 6.5.10] |
| 412 | Precondition Failed | [RFC7232, Section 4.2] |
| 413 | Payload Too Large | [RFC7231, Section 6.5.11] |
| 414 | URI Too Long | [RFC7231, Section 6.5.12] |
| 415 | Unsupported Media Type | [RFC7231, Section 6.5.13] |
| 416 | Range Not Satisfiable | [RFC7233, Section 4.4] |
| 417 | Expectation Failed | [RFC7231, Section 6.5.14] |
| 418-420 | Unassigned | |
| 421 | Misdirected Request | [RFC7540, Section 9.1.2] |
| 422 | Unprocessable Entity | [RFC4918] |
| 423 | Locked | [RFC4918] |
| 424 | Failed Dependency | [RFC4918] |
| 425 | Too Early | [RFC-ietf-httpbis-replay-04] |
| 426 | Upgrade Required | [RFC7231, Section 6.5.15] |
| 427 | Unassigned | |
| 428 | Precondition Required | [RFC6585] |
| 429 | Too Many Requests | [RFC6585] |
| 430 | Unassigned | |
| 431 | Request Header Fields Too Large | [RFC6585] |
| 432-450 | Unassigned | |
| 451 | Unavailable For Legal | [RFC7725] |
| 452-499 | Unassigned | |
| 500 | Internal Server Error | [RFC7231, Section 6.6.1] |
| 501 | Not Implemented | [RFC7231, Section 6.6.2] |
| 502 | Bad Gateway | [RFC7231, Section 6.6.3] |
| 503 | Service Unavailable | [RFC7231, Section 6.6.4] |
| 504 | Gateway Timeout | [RFC7231, Section 6.6.5] |
| 505 | HTTP Version Not Supported | [RFC7231, Section 6.6.6] |
| 506 | Variant Also Negotiates | [RFC2295] |
| 507 | Insufficient Storage | [RFC4918] |
| 508 | Loop Detected | [RFC5842] |
| 509 | Unassigned | |
| 510 | Not Extended | [RFC2774] |
| 511 | Network Authentication Required | [RFC6585] |
| 512-599 | Unassigned |
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
$ vendor/bin/phpunit
Contributing
If you would like to help take a look at the list of issues and check our Contributing guild.
Note: Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
License
The Narrowspark http-emitter is open-sourced software licensed under the MIT license
narrowspark/http-status 适用场景与选型建议
narrowspark/http-status 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 45.87k 次下载、GitHub Stars 达 9, 最近一次更新时间为 2016 年 06 月 01 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「http」 「exception」 「status」 「psr-7」 「psr7」 「http-status」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 narrowspark/http-status 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 narrowspark/http-status 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 narrowspark/http-status 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Serves functionality of healthchecks of your application
repository php library
Doctrine implementation of the MetaborStd (Statemachine) for PHP 8.2+
404 'not found' and 403 'forbidden' error handlers. The 404 handler shows custom content for missing pages but not resources like CSS or JS. The 403 handler redirects to a login URL on unauthorized access.
Provide status and health api endpoints
Error and Exception override and observers.
统计信息
- 总下载量: 45.87k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 9
- 点击次数: 32
- 依赖项目数: 8
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-06-01