Lumine 1.02-beta
Documentação complementar do Lumine:
O mapeamento e a validação do Lumine ficou ainda muito mais fácil, agora ele é totalmente feito em PHP, sem a necessidade de configurar nenhuma linha em XML.
class Pessoas extends Lumine_Base {
// sobrecarga
protected $_tablename = 'pessoas';
protected $_package = 'classes';
protected function _initialize() {
# nome_do_membro, nome_da_coluna, tipo, comprimento, opcoes
$this->_addField('idPessoas', 'idPessoas', 'int', 11, array('primary' => true, 'notnull' => true, 'autoincrement' => true));
$this->_addField('nome', 'nome', 'varchar', 255, array('notnull'=> true));
$this->_addField('descricao', 'descricao', 'varchar', 45, array('notnull' => true));
$this->_addField('numero', 'numero', 'int', 11, array('notnull' => true));
$this->_addField('email', 'email', 'varchar', 255, array('notnull' => true));
$this->_addField('cpf', 'cpf', 'varchar', 11, array('notnull' => true));
#nome do relacionamento, tipo do relacionamento, classe que será ligada, campo da classe ligada, se tiver tabela de união, nome da coluna na tabela de união, lazy
$this->_addForeignRelation('carros', self::ONE_TO_MANY, 'Carros', 'idPessoa', null, null, null);
#Validações
$this->_addValidation("nome", "requiredString", "O campo NOME deve ser PREENCHIDO");
$this->_addValidation("nome", "requiredLength", "O campo NOME deve ter no mínimo 3 e no máximo 10 caracteres", null, 5);
$this->_addValidation("nome", "requiredUnique", "O NOME já cadastrado");
$this->_addValidation("numero", "requiredNumber", "O campo NUMERO deve conter apenas NUMEROS");
$this->_addValidation("numero", "requiredFunction", "validateEspecial");
$this->_addValidation("email", "requiredString", "O campo EMAIL deve ser PREENCHIDO");
$this->_addValidation("email", "requiredEmail", "EMAIL informado é invalido");
$this->_addValidation("email", "requiredUnique", "O EMAIL já cadastrado");
$this->_addValidation("cpf", "requiredCpf", "CPF invalido");
$this->_addValidation("cpf", "requiredUnique", "O CPF já foi cadastrado");
}
public function validateEspecial() {
return "Erro, campo invalido";
}
public static function staticGet($pk, $pkValue = null) {
$obj = new Pessoa;
$obj->get($pk, $pkValue);
return $obj;
}
}
O método $this->_addValidation(“campo”, “Tipo de validação”, “Mensagem de retorno”, “Numero minimo de caracteres”, “Numero máximo de caracteres”) é utilizado para adicionar as validações.
Existem até agora 7 métodos de validações:
- requiredString
- requiredNumber
- requiredLength
- requiredEmail
- requiredUnique
- requiredFunction
- requiredCpf
Esse método deve ser utilizado dentro do método _initialize(), necessário para carregar as informações sobre o objeto.
Explicando melhor cada um dos tipos de validação:
requiredString: Verifica se o campo é uma string válida.
Exemplo:
$this->_addValidation("nome","requiredString", "O campo NOME deve ser preenchido");
$pessoa = new Pessoa();
$pessoa->nome = "Cairo Noleto";
$errors = $pessoa->isValid();
if ($errors == true) {
$pessoa->save();
} else {
foreach ($errors as $erro) {
echo $erro;
}
}
requiredNumber: Verifica se o campo é um numero válido
Tipos numéricos válidos: inteiro, ponto flutuante (0 – Inteiro, 0.8 – ponto flutuante, 0,9 – String).
Exemplo:
$this->_addValidation("numero","requiredNumber", "NUMERO invalido");
$pessoa = new Pessoa();
$pessoa->numero = 1000.998;
$errors = $pessoa->isValid();
if ($errors == true) {
$pessoa->save();
} else {
foreach ($errors as $erro) {
echo $erro;
}
}
requiredLength: Verifica se o campo está dentro dos requisitos passados
Exemplo:
$this->_addValidation("nome","requiredLength", "O campo NOME deve ter no mínimo 3 caracteres", 3);
$this->_addValidation("numero","requiredLength", "O campo NUMERO deve ter no mínimo 3 e no maximo 5 caracteres", 3, 5);
$pessoa = new Pessoa();
$pessoa->nome = "Cairo Noleto";
$pessoa->numero = 1234;
$errors = $pessoa->isValid();
if ($errors == true) {
$pessoa->save();
} else {
foreach ($errors as $erro) {
echo $erro;
}
}
requiredEmail: Verifica se o campo é um email válido
Exemplo:
$this->_addValidation("email","requiredEmail", "EMAIL inválido");
$pessoa = new Pessoa();
$pessoa->email = "caironoleto@gmail.com";
$errors = $pessoa->isValid();
if ($errors == true) {
$pessoa->save();
} else {
foreach ($errors as $erro) {
echo $erro;
}
}
requiredUnique: Verifica se o campo é unico
Este tipo de validação é case sensitive, então “Cairo Noleto” é diferente de “cairo noleto”.
Exemplo:
$this->_addValidation("email","requiredUnique", "EMAIL já cadastrado");
$pessoa = new Pessoa();
$pessoa->email = "caironoleto@gmail.com";
$errors = $pessoa->isValid();
if ($errors == true) {
$pessoa->save();
} else {
foreach ($errors as $erro) {
echo $erro;
}
}
requiredFunction: Passa ao método isValid a opção para executar uma função definida pelo usuário para validação.
O retorno dessa função deverá ser TRUE em caso afirmativo, e em caso negativo, o retorno deverá ser a MENSAGEM a ser devolvida.
A função a ser executada deverá ser passada no lugar da mensagem. Essa função deve ser definida dentro da classe mapeada.
Exemplo:
$this->_addValidation("email","requiredFunction", "validacaoEmail");
$pessoa = new Pessoa();
$pessoa->email = "caironoleto@gmail.com";
$errors = $pessoa->isValid();
if ($errors == true) {
$pessoa->save();
} else {
foreach ($errors as $erro) {
echo $erro;
}
}
requiredCpf: Verifica se o campo passado é um CPF válido.
Essa validação, é estritamente brasileira. CPF é um tipo de documento emitido no Brasil, onde cada pessoa física contem um numero de 11 caracteres distinto.
Resolvi inserir esse tipo de validação pois costumo utilizar muito desse tipo de validação em meus projetos.
Exemplo:
$this->_addValidation("cpf","requiredCpf", "CPF inválido");
$pessoa = new Pessoa();
$pessoa->cpf = "84719645119";
$errors = $pessoa->isValid();
if ($errors == true) {
$pessoa->save();
} else {
foreach ($errors as $erro) {
echo $erro;
}
}
Método isValid(): Este método é utilizado para validação do objeto, caso o objeto esteja conforme suas validações, seu retorno é TRUE, caso o objeto não esteja conforme um dos campos de validações, ele retorna um array contendo as mensagens de erro.
Exemplo:
$this->_addValidation("cpf","requiredCpf", "CPF inválido");
$pessoa = new Pessoa();
$pessoa->cpf = "84719645119";
$errors = $pessoa->isValid();
if ($errors == true) {
$pessoa->save();
} else {
foreach ($errors as $erro) {
echo $erro;
}
}
Como ainda está em fase Alpha, espero contar com o feedback de bugs, sugestões e críticas.
Quero tambem agradecer ao Hugo Ferreira, que foi o criador do framework, agradecer as pessoas que visitam meu site, ao meu Alpha-Beta Tester oficial Marcelo Soares e agradecer a todos que me ajudam na minha jornada.
Cairo Lincoln de Morais Noleto.

