Files
michaelschiemer/docs/framework/http
..
2025-07-17 16:24:20 +02:00

HTTP-Modul Dokumentation

Übersicht

Das HTTP-Modul stellt Komponenten für die Verarbeitung von HTTP-Anfragen und -Antworten bereit.

Hauptkomponenten

Request

Repräsentiert eine HTTP-Anfrage mit Methoden zum Zugriff auf:

  • HTTP-Methode (getMethod())
  • Pfad (getPath())
  • Query-Parameter (getQueryParams())
  • Request-Body
  • Headers

Response

Repräsentiert eine HTTP-Antwort mit:

  • Status-Code (getStatusCode())
  • Headers
  • Body

Middleware

Ein Interface für HTTP-Middleware-Komponenten, die die Request-Verarbeitung verändern können:

interface Middleware
{
    public function process(Request $request, callable $next): Response;
}

Beispiel-Middleware:

class AnalyticsMiddleware implements Middleware
{
    public function __construct(
        private readonly Analytics $analytics
    ) {}

    public function process(Request $request, callable $next): Response
    {
        // Request tracken
        $this->analytics->track('http_request', [
            'method' => $request->getMethod(),
            'path' => $request->getPath(),
        ]);

        // Request weiterleiten
        $response = $next($request);

        // Response tracken
        $this->analytics->track('http_response', [
            'status_code' => $response->getStatusCode(),
        ]);

        return $response;
    }
}

Integration mit anderen Modulen

  • Router: Routing von HTTP-Requests zu Controllers
  • Analytics: Tracking von HTTP-Requests und -Responses
  • Validation: Validierung von Request-Daten

Middlewares registrieren

In der Anwendungsklasse:

$this->addMiddleware(LoggingMiddleware::class);
$this->addMiddleware(AnalyticsMiddleware::class);
$this->addMiddleware(AuthenticationMiddleware::class);

Responses erzeugen

// JSON-Response
return new JsonResponse(['success' => true]);

// HTML-Response
return new HtmlResponse('<html><body>Hello World</body></html>');

// Redirect
return new RedirectResponse('/dashboard');