elephox/http

Elephox HTTP 库。

v0.7.0 2022-10-21 15:39 UTC

README

此模块由 Elephox 使用,用于处理 HTTP 消息。它提供了一系列功能,如解析传入的 HTTP 消息、创建输出的 HTTP 消息、解析和修改头部、cookies、查询参数、上传文件和 URL 解析。

示例

<?php

use Elephox\Http\ServerRequestBuilder;
use Elephox\Http\Url;
use Elephox\Http\Cookie;
use Elephox\Http\Response;
use Elephox\Http\ResponseCode;
use Elephox\Http\ResponseSender;
use Elephox\Http\UrlScheme;

$request = ServerRequestBuilder::fromGlobals();
$request->getUrl()->path; // '/requested/path'

$newRequest = $request->with()
    ->header('X-Foo', 'bar')
    ->cookie(new Cookie('dough', 'choco'))
    ->requestUrl(Url::fromString('https://example.com/new/url'))
    ->get();

$response = Response::build()
    ->responseCode(ResponseCode::OK)
    ->htmlBody('<h1>Hello World</h1>')
    ->header('X-Foo', 'bar')
    ->get();

ResponseSender::sendResponse($response); // you can also pass a response builder object here

$url = Url::fromString('https://[email protected]/with/query?foo=bar&baz=qux');

$url->path; // '/with/query'
$url->query; // ['foo' => 'bar', 'baz' => 'qux']
$url->host; // 'example.com'
$url->port; // null
$url->scheme === UrlScheme::HTTPS; // true
$url->scheme->getDefaultPort(); // 443
$url->scheme->getScheme(); // 'https'
$url->user; // 'user'
$url->pass; // null
$url->fragment; // null