Was ist Respect\\Validation?
Respect\\Validation ist eine leistungsstarke und ausdrucksstarke Bibliothek zur Datenvalidierung in PHP. Sie ermöglicht es, komplexe Prüfregeln mit Methodenketten zu erstellen, was den Code sauber und lesbar macht. Die Bibliothek unterstützt über 60 integrierte Regeln (von der E-Mail-Prüfung bis zur CPF/CNPJ-Validierung) und kann leicht mit benutzerdefinierten Regeln erweitert werden.
Wozu dient Validierung?
Datenvalidierung ist ein kritischer Schritt bei der Verarbeitung von Benutzereingaben, API-Anfragen oder Daten aus externen Quellen. Ohne sie ist die Anwendung anfällig für:
- SQL-Injection und XSS-Angriffe
- Ungültige Daten, die Fehler verursachen
- Verletzung der Geschäftslogik
Respect\\Validation löst diese Probleme, indem es eine einheitliche Schnittstelle zum Filtern und Prüfen bereitstellt.
Installation
Installieren Sie die Bibliothek über Composer:
composer require respect/validationNach der Installation binden Sie den Autoloader ein und verwenden den Namensraum:
require 'vendor/autoload.php';use Respect\\Validation\\Validator as v;Hauptfunktionen
Die Bibliothek bietet:
- Regelketten:
v::alnum()->noWhitespace()->length(5, 20)->validate($input) - Benutzerdefinierte Fehlermeldungen:
v::email()->setName('Email')->assert($input) - Gruppenvalidierung:
v::attribute('name', v::stringType())->attribute('age', v::intVal()) - Optionale Felder und bedingte Regeln (z. B. Prüfung nur, wenn das Feld vorhanden ist).
PHP-Codebeispiel
Einfache Validierung eines Registrierungsformulars:
<?phprequire 'vendor/autoload.php';use Respect\\Validation\\Validator as v;
$data = [ 'username' => 'john_doe', 'email' => 'john@example.com', 'password' => 'secret123', 'age' => 25];
$usernameValidator = v::alnum()->noWhitespace()->length(4, 20);$emailValidator = v::email();$passwordValidator = v::length(8, 64);$ageValidator = v::intVal()->between(18, 120);
try { $usernameValidator->setName('Username')->assert($data['username']); $emailValidator->setName('Email')->assert($data['email']); $passwordValidator->setName('Password')->assert($data['password']); $ageValidator->setName('Age')->assert($data['age']); echo 'Alle Daten sind gültig!';} catch (\\Respect\\Validation\\Exceptions\\NestedValidationException $e) { echo implode('<br>', $e->getMessages());}Ergebnis bei einem Fehler: "Username must contain only letters and digits" usw.
Wann verwenden
- Formulare auf Websites — Registrierung, Kontaktformular, Bestellung
- REST-APIs — Prüfung von JSON-Anfragen vor der Verarbeitung
- Datenimport — Validierung von CSV/Excel vor dem Schreiben in die Datenbank
- Befehlszeilenskripte — Prüfung von CLI-Argumenten
Respect\\Validation eignet sich für Projekte jeder Größe – von einfachen Websites bis hin zu Frameworks (Laravel, Symfony). Es ersetzt umständliche if-else-Konstrukte und vereinfacht das Testen.
Auch in der Bibliothek
Prisma für TypeScript: vollständige Anleitung mit Beispielen
awilix für TypeScript: Vollständiges Guide mit Beispielen
Symfony/Cache für PHP: Komplette Anleitung mit Beispielen