un poco fastidiado el dia de hoy me puse a trabajr un poco en la clase que me indicaban, las validaciones las hace segun lo que he colocado, pueden hacerme todas las criticas posibles
Código PHP:
Ver original<?php
/**
clase para realizar validaciones en el modelo
*/
class Validacion
{
public $mensaje;
/**
declaramos la regla de validacion
*/
public function rules
($rule = array(),$data) {
$this->mensaje = "las reglas deben de estar en formato de arreglo";
return $this;
}
foreach($rule as $key => $rules){
$reglas = explode(',',$rules['regla']); foreach($data as $indice => $valor){
if($indice === $rules['name']){
foreach($reglas as $clave => $valores){
if($valores === "no-empty"){
$respuesta = $this->_noEmpty($rules['name'],$valor);
}
if($valores === "numeric"){
$respuesta = $this->_numeric($rules['name'],$valor);
}
elseif($valores === "email"){
$respuesta = $this->_email($rules['name'],$valor);
}
}
break;
}
}
}
else{
$this->mensaje[$rules['name']] = "el campo $value no esta dentro de la regla de validación o en el formulario";
}
}
if(!$respuesta){
return $this;
}
}
/**
metodo para verificar si esta vacio el campo
*/
protected function _noEmpty($campo,$valor)
{
return true;
}
else{
$this->mensaje[$campo][] = "el campo $campo debe de estar lleno";
return false;
}
}
/**
metodo para verificar que el campo sea numerico
*/
protected function _numeric($campo,$valor)
{
return true;
}
else{
$this->mensaje[$campo][] = "el campo $campo debe de ser numerico";
return false;
}
}
/**
metodo para verificacion de email
*/
protected function _email($campo,$valor)
{
if(preg_match("/^[a-z]+([\.]?[a-z0-9_-]+)*@[a-z]+([\.-]+[a-z0-9]+)*\.[a-z]{2,}$/",$valor)){ $this->mensaje[$campo][] = "el campo $campo de estar en el formato de email [email protected]"; return false;
}
}
}
/*pruebas basicas a la clase sin incluirla en el modelo*/
$_POST['campo1'] = 1;
$datos = $_POST;
$validacion = new Validacion();
array('name'=>'campo1','regla'=>'no-empty,numeric'), array('name'=>'campo2','regla'=>'no-empty,email') );
$validaciones = $validacion->rules($regla,$datos);
?>
ahora bien, esta clase la incluyo en la clase modelo base de tal manera que pueda realizar la validaciones directamente llamando a el metodo rules de esta clase o que me pueden aconcejar, gracias de nuevo