PSR-7 (messages HTTP)

PHP 🟡 Mid

Définition

Standard PHP-FIG qui définit les interfaces des messages HTTP : RequestInterface, ServerRequestInterface, ResponseInterface, StreamInterface, UriInterface, UploadedFileInterface. Les messages sont immuables : chaque with*() retourne une nouvelle instance. Base des middlewares PSR-15 et des clients PSR-18.

Analogie

Un formulaire administratif normalisé : chaque guichet le lit sans demander de version spéciale.

Exemple de code

use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;

function handle(Request $request): Response
{
  $name = $request->getQueryParams()['name'] ?? 'monde';
  // immuable : withHeader() retourne une copie
  $response = (new Response())
    ->withStatus(200)
    ->withHeader('Content-Type', 'text/plain');
  $response->getBody()->write("Bonjour $name");
  return $response;
}

Cas d'usage

Écrire un middleware ou une bibliothèque compatible avec Slim, Laminas, Symfony (via bridge) sans dépendre d'un framework.

Anti-pattern

Appeler $response->withHeader(...) sans réaffecter le résultat : l'objet d'origine n'est pas modifié.
#core#interview#bestpractice

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre