Request

A request is an object that encapsulates an incoming HTTP message: method, URL, headers, query parameters, body, and uploaded files.

PHP frameworks provide a dedicated Request object that replaces direct access to superglobals such as $_GET, $_POST, $_SERVER, and $_FILES. This makes code more testable and explicit.

PSR-7 defines a standard ServerRequestInterface that many frameworks and libraries implement, enabling interoperability.

<?php

// PSR-7 style
use Psr\Http\Message\ServerRequestInterface;

function handle(ServerRequestInterface $request): void {
    $method = $request->getMethod();           // 'POST'
    $query  = $request->getQueryParams();      // $_GET equivalent
    $body   = $request->getParsedBody();       // $_POST equivalent
    $header = $request->getHeaderLine('Accept');
}

// Laravel / Symfony style
use Illuminate\Http\Request;

class UserController {
    public function store(Request $request): Response {
        $name  = $request->input('name');
        $email = $request->input('email');
    }
}

?>

Documentation

See also PSR-7: HTTP message interfaces, Symfony HttpFoundation Request and Laravel Requests.

Related : $_REQUEST, $_GET, $_POST, $_SERVER, Controller, Route, Middleware Pattern, Incoming Data, Form

Related packages : psr/http-message, nyholm/psr7