Advertisement
danilom

ZUUF\Validator

Aug 25th, 2011
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.74 KB | None | 0 0
  1. <?php
  2. namespace ZUUF;
  3.  
  4.  
  5. class Validator {
  6.  
  7.     private $fields = array();
  8.     private $messages = '';
  9.  
  10.     public function __construct($fields = null) {
  11.  
  12.         if (is_array($fields))
  13.             $this->set_fields($fields);
  14.     }
  15.  
  16.     public function is_valid_one($field, $data) {
  17.  
  18.         $errors = array();
  19.  
  20.         foreach($this->fields[$field] as $callback_error_message) {
  21.  
  22.             if(is_array($callback_error_message[1])) {
  23.                 list($callback, $parameters, $message) = $callback_error_message;
  24.                 array_unshift($parameters, $data);
  25.             } else {
  26.                 list($callback, $message) = $callback_error_message;
  27.                 $parameters = array($data);
  28.             }
  29.  
  30.             if(call_user_func_array($callback, $parameters) === false)
  31.                 $errors[] = $message;
  32.         }
  33.  
  34.         return $this->error($errors);
  35.     }
  36.  
  37.     public function is_valid_all($fields_data) {
  38.  
  39.         $fields_errors = array();
  40.  
  41.         foreach($fields_data as $field => $data)
  42.             if($this->is_valid_one($field, $data) === false)
  43.                 $fields_errors[$field] = $this->messages;
  44.  
  45.         return $this->error($fields_errors);
  46.     }
  47.  
  48.     private function error($error_messages) {
  49.         if(count($error_messages) === 0)
  50.             return true;
  51.         else {
  52.             $this->messages = $error_messages;
  53.             return false;
  54.         }
  55.     }
  56.  
  57.     public function get_messages() {
  58.         return $this->messages;
  59.     }
  60.  
  61.     public function set_fields($fields) {
  62.         $this->fields = $fields;
  63.         return $this;
  64.     }
  65.  
  66.     public function add_field($field, $validation) {
  67.         $this->fields[$field][] = $validation;
  68.         return $this;
  69.     }
  70.  
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement