All pastes #455736 Raw Edit

Unnamed

public text v1 · immutable
#455736 ·published 2007-04-24 12:39 UTC
rendered paste body
<?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...
    
}
?>