Advertisement
fabi0

Untitled

Nov 10th, 2013
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.10 KB | None | 0 0
  1. <?php
  2.  
  3. namespace Models;
  4.  
  5. class Validator {
  6.  
  7.     private $_data = array();
  8.     private $_rules = array();
  9.     private $_errors = array();
  10.     private $_regexes = Array(
  11.         'date' => "^[0-9]{4}[-/][0-9]{1,2}[-/][0-9]{1,2}\$",
  12.         'amount' => "^[-]?[0-9]+\$",
  13.         'number' => "^[-]?[0-9,]+\$",
  14.         'alfanum' => "^[0-9a-zA-Z ,.-_\\s\?\!]+\$",
  15.         'not_empty' => "[a-z0-9A-Z]+",
  16.         'words' => "^[A-Za-z]+[A-Za-z \\s]*\$",
  17.         'phone' => "^[0-9]{10,11}\$",
  18.         'zipcode' => "^[1-9][0-9]{3}[a-zA-Z]{2}\$",
  19.         'plate' => "^([0-9a-zA-Z]{2}[-]){2}[0-9a-zA-Z]{2}\$",
  20.         'price' => "^[0-9.,]*(([.,][-])|([.,][0-9]{2}))?\$",
  21.         '2digitopt' => "^\d+(\,\d{2})?\$",
  22.         '2digitforce' => "^\d+\,\d\d\$",
  23.         'anything' => "^[\d\D]{1,}\$"
  24.     );
  25.  
  26.     function __construct() {
  27.        
  28.     }
  29.  
  30.     public function setData($params) {
  31.         $this->_data = $params;
  32.         return $this;
  33.     }
  34.  
  35.     public function setRules($field, $type, $param = NULL) {
  36.         $this->_rules[$field][] = array('type' => $type, 'param' => $param);
  37.         return $this;
  38.     }
  39.  
  40.     public function validate() {
  41.  
  42.         foreach ($this->_rules as $field => $rules) {
  43.             foreach ($rules as $rule) {
  44.                 $this->$rule['type']($field, $rule['param']);
  45.             }
  46.         }
  47.         return $this;
  48.     }
  49.  
  50.     private function min_len($field, $params) {
  51.  
  52.         if (mb_strlen($this->_data[$field]) >= $params) {
  53.             return true;
  54.         } else {
  55.             $this->_errors[$field]['min_len'] = TRUE;
  56.             return false;
  57.         }
  58.     }
  59.  
  60.     private function max_len($field, $params) {
  61.         if (mb_strlen($this->_data[$field]) <= $params) {
  62.             return true;
  63.         } else {
  64.             $this->_errors[$field]['max_len'] = TRUE;
  65.             return false;
  66.         }
  67.     }
  68.  
  69.     private function required($field) {
  70.  
  71.         if ($this->_data[$field] == '') {
  72.             $this->_errors[$field]['required'] = TRUE;
  73.             return FALSE;
  74.         }
  75.         return TRUE;
  76.     }
  77.  
  78.     private function is_valid_email($field) {
  79.  
  80.         if (filter_var($this->_data[$field], FILTER_VALIDATE_EMAIL) === false) {
  81.             $this->_errors[$field]['is_valid_email'] = TRUE;
  82.             return FALSE;
  83.         }
  84.         return TRUE;
  85.     }
  86.  
  87.     private function match($field, $params) {
  88.         if ($this->_data[$field] != $this->_data[$params]) {
  89.             $this->_errors[$field]['match'] = TRUE;
  90.             return FALSE;
  91.         }
  92.         return TRUE;
  93.     }
  94.  
  95.     private function is_array_($field) {
  96.  
  97.         if (isset($this->_data[$field]) && is_array($this->_data[$field])) {
  98.             return TRUE;
  99.         }
  100.         $this->_errors[$field]['is_array_'] = TRUE;
  101.         return false;
  102.     }
  103.  
  104.     private function required_array($field) {
  105.         if (isset($this->_data[$field]) && !empty($this->_data[$field])) {
  106.             return TRUE;
  107.         }
  108.         $this->_errors[$field]['required_array'] = TRUE;
  109.         return false;
  110.     }
  111.  
  112.     public function getErrors() {
  113.         return $this->_errors;
  114.     }
  115.  
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement