Start · Sprachen · PHP · Referenz · Uri\WhatWg\UrlValidationErrorType

Uri\WhatWg\UrlValidationErrorType

Enum

Enum mit allen standardisierten WHATWG-URL-Validierungsfehlertypen, die beim Parsen oder Serialisieren von URLs auftreten können.

seit PHP 8.4.0 Kategorie: misc

Signatur

enum Uri\WhatWg\UrlValidationErrorType: string

Beschreibung

Uri\WhatWg\UrlValidationErrorType ist ein String-Backed-Enum, das die im WHATWG URL Living Standard definierten Validierungsfehlertypen abbildet. Jeder Fall entspricht einem benannten Fehler, der beim Parsen einer URL erkannt werden kann – etwa ungültige Zeichen, fehlerhafte IPv4- oder IPv6-Adressen oder nicht erlaubte Sonderzeichen in bestimmten URL-Komponenten.

Die Enum-Werte werden typischerweise zusammen mit Uri\WhatWg\UrlValidationError verwendet, um den genauen Typ eines aufgetretenen Fehlers maschinenlesbar zu identifizieren. So können unterschiedliche Fehlerklassen programmatisch unterschieden und entsprechend behandelt werden, statt nur auf Fehlermeldungen als Strings zu reagieren.

Durch die Verwendung eines typisierten Enums ist ein direkter Vergleich mit === oder per match-Ausdruck möglich, was eine sichere und übersichtliche Fehlerbehandlung ermöglicht. Die Werte der Enum-Fälle sind die kanonischen, im WHATWG-Standard festgelegten Bezeichner.

Dieses Enum ist Teil der neuen Uri-Extension, die ab PHP 8.4 WHATWG-konforme URL-Verarbeitung direkt in PHP ermöglicht, ohne auf externe Bibliotheken angewiesen zu sein.

Beispiele

Fehlertyp einer URL-Validierung prüfen

<?php
use Uri\WhatWg\Url;
use Uri\WhatWg\UrlValidationErrorType;

$errors = [];
$url = Url::parse("https://exa mple.com/path", null, $errors);

foreach ($errors as $error) {
    echo "Fehlertyp: " . $error->type->value . PHP_EOL;
    echo "Schwerwiegend: " . ($error->failure ? 'Ja' : 'Nein') . PHP_EOL;
}
Fehlertyp: invalid-url-unit Schwerwiegend: Nein

Gezieltes Reagieren auf bestimmte Fehlertypen via match

<?php
use Uri\WhatWg\Url;
use Uri\WhatWg\UrlValidationErrorType;

$errors = [];
$url = Url::parse("https://192.168.0.999/", null, $errors);

foreach ($errors as $error) {
    $meldung = match ($error->type) {
        UrlValidationErrorType::Ipv4TooManyParts     => 'IPv4-Adresse hat zu viele Teile.',
        UrlValidationErrorType::Ipv4OutOfRangePart   => 'IPv4-Teil ist außerhalb des gültigen Bereichs.',
        UrlValidationErrorType::Ipv4NonNumericPart   => 'IPv4-Teil enthält nicht-numerische Zeichen.',
        default                                       => 'Anderer Fehler: ' . $error->type->value,
    };
    echo $meldung . PHP_EOL;
}
IPv4-Teil ist außerhalb des gültigen Bereichs.

// Wichtig · Fallstricke

Die konkreten Enum-Fälle (wie InvalidUrlUnit, Ipv4OutOfRangePart, Ipv4TooManyParts usw.) entsprechen direkt den im WHATWG-Standard definierten validation error types. Die genaue Liste der verfügbaren Fälle hängt von der implementierten Version des Standards ab und kann sich mit zukünftigen PHP-Releases oder Standardaktualisierungen erweitern.

Validierungsfehler sind nicht zwingend fatal: Das Feld failure des zugehörigen UrlValidationError-Objekts zeigt an, ob der Fehler das Parsen grundsätzlich verhindert hat. Nicht-fatale Fehler bedeuten, dass die URL trotzdem geparst wurde, aber möglicherweise von der Eingabe abweicht.