simplemehanizm / http
HTTP 库
1.0.0
2023-12-13 16:42 UTC
Requires
- simplemehanizm/array: ^1.0
Requires (Dev)
- phpunit/phpunit: ^10.4
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 状态码、短语值、头部等信息。探索它们吧 :)