Skip to content

[READONLY] This is the HTTP module of the Elephox framework.

License

Notifications You must be signed in to change notification settings

elephox-dev/http

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Elephox HTTP Module

This module is used by Elephox to work with HTTP messages. It provides a range of features like parsing incoming HTTP messages, creating outgoing HTTP messages, parsing and modifying headers, cookies, query parameters, uploaded files, and URL parsing.

Examples

<?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://user@example.com/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

About

[READONLY] This is the HTTP module of the Elephox framework.

Resources

License

Stars

Watchers

Forks

Languages