<?php
class Validator
{
private $value;
private $rules;
private $messages;
public function __construct()
{
$this->value = '';
$this->rules = array();
$this->messages = array();
}
# zet de variabele onvoorwaardelijk
public function setValue($value)
{
$this->value = $value;
}
# zet de regels waarin de gesette var moet voldoen
public function setRules($rules)
{
$this->rules = $rules;
}
# laat de validator zijn werk doen
# return true wanneer geaccepteerd, of een array met foutmeldingen
public function run()
{
foreach($this->rules AS $rule)
{
if(method_exists($this, $rule)
{
$val = $rule($this->value);
if($val !== true)
{
$this->messages[] = $val;
}
}
}
return (count($this->messages) > 0) ? $this->messages : true;
}
/**
* validatie regels
* deze retourneren allen of TRUE of een fout(code?)
*
* je zou deze methoden wellicht in een (of meerdere, bijvoorbeeld per veldtype)
* aparte classes kunnen stoppen
*/
# is de value groter dan 0
private function unsigned()
{
return $this->value > 0 ? true : ERR_UNSIGNED;
}
# is de value een integer
private function is_integer()
{
return is_int($this->value) ? true : ERR_INTEGER;
}
# enzovoorts...
}
?>