IlchCMS/Ilch-2.0 — pull request #61 by dastiii (2014-05-12 16:51:48+00:00)
Title: Adds a Validator class

Hab mal ne einfache Validator class gemacht. Hab jetzt soweit alles was ich selbst im Kopf hatte beachtet, keine Ahnung, ob man das irgendwo vielleicht noch dynamischer machen kann.

Auf jeden Fall funktioniert es recht einfach, bsp:
```
array('name' => '1', 'test' => 1));

$validation = new \Ilch\Validator;
$validation->check($data, array(
'match.name' => array(
'required',
'minimum' => 1,
'maximum' => 4,
'same' => array('as' => 'match.test', 'strict' => true),
),
'match.date' => array(
'required'
),
));
?>
```

Hier kann dann auch wieder, wie ursprünglich bei `getPost()`, die 'dot notation' genutzt werden, dazu hab ich das mal als Funktion ausgelagert, damit man es nicht doppelt und dreifach hat. Außerdem kann man als Validator auch andere Klassen aufrufen, wenn ich jetzt im MatchModule eine bestimmte Validation bräuchte, könnte ich z.B. eine Datei in `application/modules/matches/validators/Foo.php` erstellen, diese Klasse darin dann von \Ilch\Validators\Base erben lassen und anschließend wie folgt nutzen:
```
array('name' => '1', 'test' => 1));

$validation = new \Ilch\Validator;
$validation->check($data, array(
'match.date' => array(
'matches.validators.foo' => 'zusätzliche Parameter, was auch immer',
),
));
?>
```
Aus `matches.validators.foo` wird dann im Endeffekt `new \Matches\Validators\Foo`.

Mit `$validation->getErrors()` bekommt man dann alle Fehler als Array zurück, allerdings hab ich es aktuell so, dass für jedes Feld nur der erste Fehler hinzugefügt wird, sprich wenn ich ein Feld als `required` haben möchte, aber es auch mindestens 2 Zeichen lang sein muss, also `minimum => 2` als Validator drin ist, dann wird, wenn ich das Feld leer lasse, als Fehler nur "x ist ein Pflichtfeld." zurückgegeben. Wenn ich jetzt ein "a" in das Feld einfüge, die Validation noch einmal ausführe, dann wird erst "x muss mindestens 2 Zeichen lang sein." angezeigt, weil der Fehler bezüglich `required` behoben wurde.

Ansonsten sind es aktuell halt noch nicht viele Validators, sind ja aber recht einfach welche hinzuzufügen.