1.0.0 2023-12-13 16:42 UTC

This package is auto-updated.

Last update: 2024-09-13 18:35:14 UTC


README

simplemehanizm/http 是 PHP 中处理 HTTP 请求的对象封装。

该库的目的是体积小,能够列出状态码和原因短语,以帮助开发者避免使用魔法字符串。

何时何地使用此库

用例适用于项目、实验以及其他简单编码练习,其中作者希望避免使用像 Symfony's HttpFoundation 这样的重型库,以获取对 HTTP 请求对象化接口的访问。

本意不是替换或提供现有优秀库的替代品。

安装

composer require simplemehanizm/http

使用方法

使用 PHP 的超全局变量创建请求实例

use SimpleMehanizm\Http\Request;

$request = Request::fromSuperglobals();

通过指定输入值创建请求实例

use SimpleMehanizm\Http\Request;
use function SimpleMehanizm\Http\get_http_headers;

$request = new Request(
    get: $_GET,
    post: $_POST,
    request: $_REQUEST, 
    headers: get_http_headers($_SERVER),
    cookies: $_COOKIE,
    files: $_FILES,
    server: $_SERVER 
);

访问头信息

use SimpleMehanizm\Http\Request;

$request = Request::fromSuperglobals();

// Check if exists
if($request->hasHeader('content-type'))
{
    $value = $request->header('content-type', 'default-value-when-not-present');
}

// get all headers
$headers = $request->headers();

// Change or inject header
$request->setHeader('accept', 'application/json');

访问输入

Request::input 方法使用 PHP 的超全局变量 $_REQUEST 来读取数据。对于 POST 或 GET 值,使用 post()get() 函数。

use SimpleMehanizm\Http\Request;

$request = Request::fromSuperglobals();

$input_value = $request->input('key value', 'default value when not found');

访问 GET 值

使用 PHP 的 $_GET 来访问值

use SimpleMehanizm\Http\Request;

$request = Request::fromSuperglobals();

$input_value = $request->get('get_param_name');

访问 POST 值

use SimpleMehanizm\Http\Request;

$request = Request::fromSuperglobals();

$input_value = $request->get('get_param_name');

如果 HTTP 主体是有效的 JSON 呢?

如果你的请求包含有效的 JSON,且 Request 类发现 Content-Type: application/json HTTP 头部,它将自动对主体进行 json_decode。

生成的 JSON 输入将与 $_REQUEST 中找到的值合并,允许你使用 $request->input() 方法访问它们。

还有其他什么吗?

src/Protocol 包含几个枚举,公开定义的 HTTP 状态码、短语值、头部等信息。探索它们吧 :)