## Validatie met Validator object

Bij de validatie zullen we vaak het zelfde willen controleren. Bijvoorbeeld of een verplicht veld gevuld is, of het werkelijk een email adres is, etc. Daarnaast willen we graag de omliggende spaties verwijderen. Natuurlijk kan je dan elke keer de volgende regels schrijven.

    // spaties voor en na de invoer weghalen
    $_POST['title'] = trim($_POST['title']);

    // controleren of de titel is ingevuld
    if (strlen($_POST['title']) == 0) {
      $errors['title'] = "Titel mag niet leeg zijn";
    }

Een andere oplossing is om het Validator object te gebruiken. Dat werkt als volgt.

Eenmaal moet je het object inladen. Dit kan bovenaan in de controller waar je het validatie object wilt gebruiken.

Validator.php kan je hier downloaden. Maak dit bestand aan en zet het in de directory `src`

    require "../src/Validator.php";

Indien je dezelfde validatie wilt doen zoals in het voorbeeld hierboven kan je nu doen

    if (!Validator::required($_POST['title'])) {
      $errors['title'] = "Titel mag niet leeg zijn";
    }

In de Validator wordt de static method `required` aangeroepen. Hier wordt de variabele ingestopt die gevalideerd moet gaan worden. Het Validator object haalt de omliggende spaties weg en geeft true indien alles goed gaat. Wij willen alleen als het misgaat de `$errors` vullen vandaar de `!` voor Validator

Het Validator object heeft onderstaande validatie mogelijkheden

- Validator::required($var) $var is niet leeg
- Validator::integer($var) $var is een geheel getal
- Validator::length($var,$min,$max) $var heeft een string lengte tussen $min en $max (inclusief)
- Validator::email($var) $var is een geldig email adres
- Validator::url($var) $var is een geldige url
- Validator::date($var) $var is een geldige datum
- Validator::min($var,$min) $var is hoger of gelijk aan $min
- Validator::max($var,$max) $var is lager of gelijk aan $max
- Validator::between($var,$min,$max) $var zit tussen $min en $max (inclusief)
- Validator::in($var, $array) $var komt voor in de array $array
- Validator::notIn($var,$array) $var komt niet voor in de array $array
- Validator::regex($var,$regex) $var voldoet aan de gegeven regex expressie

Voorbeelden genoeg, je kan zelf er vanalles aan toevoegen

Let op! Het gebruiken van het Validator object is er om het leven makkelijker te maken. Als je de validatie liever steeds zelf schrijft is dat uiteraard ook goed.