Guest
Public paste!

Untitled

By: a guest | Jun 25th, 2010 | Syntax: PHP | Size: 2.71 KB | Hits: 231 | Expires: Never
Copy text to clipboard
  1. <?php
  2.  
  3. /**
  4.  * Classe Para validação da Dados
  5.  * @author David CHC
  6.  * @version 0.1
  7.  *
  8.  */
  9. class Validacao {
  10.  
  11.     /**
  12.      * Atributo que receberá os valores dos dados da validação
  13.      * e o nome do campo
  14.      * @var ARRAY $dados
  15.      */
  16.     private $dados;
  17.     /**
  18.      * Atributo que receberá as mensagens de erro
  19.      * @var ARRAY $erro
  20.      */
  21.     private $erro = array();
  22.  
  23.     /**
  24.      * Método que recebe os valores de validação e nome do campo
  25.      * @param STRING $valor
  26.      * @param STRING $nome
  27.      * @return $this (retorna o próprio objeto)
  28.      */
  29.     public function set($valor, $nome) {
  30.         $this->dados = array("valor" => trim($valor), "nome" => $nome);
  31.         return $this;
  32.     }
  33.  
  34.     /**
  35.      *  Método que verifica se é o valor é obrigatório
  36.      *  @return $this (retorna o próprio objeto)
  37.      */
  38.     public function obrigatorio() {
  39.         if (empty($this->dados['valor'])) {
  40.             $this->erro[] = sprintf("O campo %s é obrigatório", $this->dados['nome']);
  41.         }
  42.         return $this;
  43.     }
  44.  
  45.     /**
  46.      * Método que verifica se o email é válido
  47.      * @return $this (retorna o próprio objeto)
  48.      */
  49.     public function email() {
  50.         if (!filter_var($this->dados['valor'], FILTER_VALIDATE_EMAIL)) {
  51.             $this->erro[] = sprintf("O campo %s só aceita um e-mail válido", $this->dados['nome']);
  52.         }
  53.         return $this;
  54.     }
  55.  
  56.     /**
  57.      * Método que verifica se a data esta no formato dd-mm-YYYY
  58.      * @return $this (retorna o próprio objeto)
  59.      */
  60.     public function data() {
  61.         //99-99-9999
  62.         if (!preg_match("/^[0-9]{2}\-[0-9]{2}\-[0-9]{4}$/", $this->dados['valor'])) {
  63.             $this->erro[] = sprintf("O campo %s só aceita no formato 99-99-9999", $this->dados['nome']);
  64.         }
  65.         return $this;
  66.     }
  67.  
  68.     /**
  69.      * Método que verifica se o telefone está no formato (99)9999-9999
  70.      * @return $this (retorna o próprio objeto)
  71.      */
  72.     public function tel() {
  73.         //(99)9999-9999
  74.         if (!preg_match("/^\([0-9]{2}\)[0-9]{4}\-[0-9]{4}$/", $this->dados['valor'])) {
  75.             $this->erro[] = sprintf("O campo %s só aceito o formato (99)9999-9999", $this->dados['nome']);
  76.         }
  77.         return $this;
  78.     }
  79.  
  80.     /**
  81.      * Método que verifica se teve alguma mensagem de erro
  82.      * @return BOOLEANO (true/false)
  83.      */
  84.     public function validar() {
  85.         if (count($this->erro) > 0) {
  86.             return false;
  87.         } else {
  88.             return true;
  89.         }
  90.     }
  91.  
  92.     /**
  93.      * Método que retorna os erros encontrados
  94.      * @return ARRAY $erro
  95.      */
  96.     public function getErrors() {
  97.         return $this->erro;
  98.     }
  99.  
  100. }
  101. ?>