<?php
/**
* Classe Para validação da Dados
* @author David CHC
* @version 0.1
*
*/
class Validacao {
/**
* Atributo que receberá os valores dos dados da validação
* e o nome do campo
* @var ARRAY $dados
*/
private $dados;
/**
* Atributo que receberá as mensagens de erro
* @var ARRAY $erro
*/
private $erro = array();
/**
* Método que recebe os valores de validação e nome do campo
* @param STRING $valor
* @param STRING $nome
* @return $this (retorna o próprio objeto)
*/
public function set($valor, $nome) {
$this->dados = array("valor" => trim($valor), "nome" => $nome);
return $this;
}
/**
* Método que verifica se é o valor é obrigatório
* @return $this (retorna o próprio objeto)
*/
public function obrigatorio() {
if (empty($this->dados['valor'])) {
$this->erro[] = sprintf("O campo %s é obrigatório", $this->dados['nome']);
}
return $this;
}
/**
* Método que verifica se o email é válido
* @return $this (retorna o próprio objeto)
*/
public function email() {
if (!filter_var($this->dados['valor'], FILTER_VALIDATE_EMAIL)) {
$this->erro[] = sprintf("O campo %s só aceita um e-mail válido", $this->dados['nome']);
}
return $this;
}
/**
* Método que verifica se a data esta no formato dd-mm-YYYY
* @return $this (retorna o próprio objeto)
*/
public function data() {
//99-99-9999
if (!preg_match("/^[0-9]{2}\-[0-9]{2}\-[0-9]{4}$/", $this->dados['valor'])) {
$this->erro[] = sprintf("O campo %s só aceita no formato 99-99-9999", $this->dados['nome']);
}
return $this;
}
/**
* Método que verifica se o telefone está no formato (99)9999-9999
* @return $this (retorna o próprio objeto)
*/
public function tel() {
//(99)9999-9999
if (!preg_match("/^\([0-9]{2}\)[0-9]{4}\-[0-9]{4}$/", $this->dados['valor'])) {
$this->erro[] = sprintf("O campo %s só aceito o formato (99)9999-9999", $this->dados['nome']);
}
return $this;
}
/**
* Método que verifica se teve alguma mensagem de erro
* @return BOOLEANO (true/false)
*/
public function validar() {
if (count($this->erro) > 0) {
return false;
} else {
return true;
}
}
/**
* Método que retorna os erros encontrados
* @return ARRAY $erro
*/
public function getErrors() {
return $this->erro;
}
}
?>