effectra/http-extensions

Effectra HTTP 扩展包。

v2.2.1 2024-01-02 18:51 UTC

This package is auto-updated.

Last update: 2024-10-01 00:20:40 UTC


README

Effectra\Http\Extensions 是一个 PHP 包,提供了用于处理 HTTP 请求和响应的扩展和工具。

安装

您可以通过 Composer 安装此包。在您的项目目录中运行以下命令

composer require effectra/http-extensions

使用方法

RequestExtension

RequestExtension 类扩展了 Effectra\Http\Message\ServerRequest 类,并提供了用于处理 HTTP 请求的额外方法。

创建请求

您可以使用 RequestExtension::fromGlobal() 方法创建一个新请求,该方法根据全局变量创建请求对象。

$request = RequestExtension::fromGlobal();

检索请求信息

  • RequestExtension::url():返回请求的 URL。
  • RequestExtension::method():返回请求的 HTTP 方法。
  • RequestExtension::path():返回请求 URI 的路径。
  • RequestExtension::inputs():返回一个包含请求中所有输入数据的对象。
  • RequestExtension::input(string $input):返回特定输入参数的值。
  • RequestExtension::validateInputs():使用第三方验证库验证输入数据。
  • RequestExtension::onlyInputs(array $inputs):返回一个只包含指定输入键的输入数据的对象。
  • RequestExtension::data(bool $associative = false):将输入数据作为数组或对象返回。
  • RequestExtension::getTokenFromBearer():从 "Authorization" 头(Bearer 身份验证)中提取令牌。

UriExtension

UriExtension 类扩展了 Effectra\Http\Message\Uri 类,并提供了用于处理 URI 的额外方法。

修改查询

  • UriExtension::withQueries(array $queries):返回一个新的 URI 对象,包含指定的查询参数。

ResponseExtension

ResponseExtension 类扩展了 Effectra\Http\Message\Response 类,并提供了用于处理 HTTP 响应的额外方法。

创建 JSON 响应

  • ResponseExtension::json($data, int $status_code = 200, array $headers = []):创建具有指定数据、状态码和额外头部的 JSON 响应。

将响应体转换为数组

  • ResponseExtension::jsonToArray(?bool $associative = null, int $depth = 512, int $flags = 0):将响应体从 JSON 转换为关联数组。

文件附件

  • ResponseExtension::attachFile(string $filePath, ?string $filename = null, ?string $contentType = null):创建带有文件附件的响应。

设置 Cookies

  • ResponseExtension::withCookie(string $name, string $value, int $expires = 0, string $path = '/', string $domain = '', bool $secure = false, bool $httpOnly = true):使用给定的参数设置一个 cookie。
  • ResponseExtension::withCookies(array $cookies, int $expires = 0, string $path = '/', string $domain = '', bool $secure = false, bool $httpOnly = true):使用给定的参数设置多个 cookies。

贡献

欢迎贡献!如果您发现任何问题或对改进有建议,请打开一个 issue 或提交一个 pull request。

许可证

此包是开源软件,许可协议为 MIT 许可证

致谢

Effectra\Http\Extensions 由 Mohammed Taha 开发和维护。