Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace Models;
- class Validator {
- private $_data = array();
- private $_rules = array();
- private $_errors = array();
- private $_regexes = Array(
- 'date' => "^[0-9]{4}[-/][0-9]{1,2}[-/][0-9]{1,2}\$",
- 'amount' => "^[-]?[0-9]+\$",
- 'number' => "^[-]?[0-9,]+\$",
- 'alfanum' => "^[0-9a-zA-Z ,.-_\\s\?\!]+\$",
- 'not_empty' => "[a-z0-9A-Z]+",
- 'words' => "^[A-Za-z]+[A-Za-z \\s]*\$",
- 'phone' => "^[0-9]{10,11}\$",
- 'zipcode' => "^[1-9][0-9]{3}[a-zA-Z]{2}\$",
- 'plate' => "^([0-9a-zA-Z]{2}[-]){2}[0-9a-zA-Z]{2}\$",
- 'price' => "^[0-9.,]*(([.,][-])|([.,][0-9]{2}))?\$",
- '2digitopt' => "^\d+(\,\d{2})?\$",
- '2digitforce' => "^\d+\,\d\d\$",
- 'anything' => "^[\d\D]{1,}\$"
- );
- function __construct() {
- }
- public function setData($params) {
- $this->_data = $params;
- return $this;
- }
- public function setRules($field, $type, $param = NULL) {
- $this->_rules[$field][] = array('type' => $type, 'param' => $param);
- return $this;
- }
- public function validate() {
- foreach ($this->_rules as $field => $rules) {
- foreach ($rules as $rule) {
- $this->$rule['type']($field, $rule['param']);
- }
- }
- return $this;
- }
- private function min_len($field, $params) {
- if (mb_strlen($this->_data[$field]) >= $params) {
- return true;
- } else {
- $this->_errors[$field]['min_len'] = TRUE;
- return false;
- }
- }
- private function max_len($field, $params) {
- if (mb_strlen($this->_data[$field]) <= $params) {
- return true;
- } else {
- $this->_errors[$field]['max_len'] = TRUE;
- return false;
- }
- }
- private function required($field) {
- if ($this->_data[$field] == '') {
- $this->_errors[$field]['required'] = TRUE;
- return FALSE;
- }
- return TRUE;
- }
- private function is_valid_email($field) {
- if (filter_var($this->_data[$field], FILTER_VALIDATE_EMAIL) === false) {
- $this->_errors[$field]['is_valid_email'] = TRUE;
- return FALSE;
- }
- return TRUE;
- }
- private function match($field, $params) {
- if ($this->_data[$field] != $this->_data[$params]) {
- $this->_errors[$field]['match'] = TRUE;
- return FALSE;
- }
- return TRUE;
- }
- private function is_array_($field) {
- if (isset($this->_data[$field]) && is_array($this->_data[$field])) {
- return TRUE;
- }
- $this->_errors[$field]['is_array_'] = TRUE;
- return false;
- }
- private function required_array($field) {
- if (isset($this->_data[$field]) && !empty($this->_data[$field])) {
- return TRUE;
- }
- $this->_errors[$field]['required_array'] = TRUE;
- return false;
- }
- public function getErrors() {
- return $this->_errors;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement