Ver Mensaje Individual
  #11 (permalink)  
Antiguo 13/03/2011, 20:57
Avatar de carlos_belisario
carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: duda de concepto en MVC

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
  1. <?php
  2. /**
  3. clase para realizar validaciones en el modelo
  4. */
  5. class Validacion
  6. {
  7.     public $mensaje;
  8. /**
  9. declaramos la regla de validacion
  10. */
  11.     public function rules($rule = array(),$data)
  12.     {
  13.        
  14.         if(!is_array($rule)){
  15.             $this->mensaje = "las reglas deben de estar en formato de arreglo";
  16.             return $this;
  17.         }      
  18.         foreach($rule as $key => $rules){
  19.             $reglas = explode(',',$rules['regla']);
  20.             if(array_key_exists($rules['name'],$data)){
  21.                 foreach($data as $indice => $valor){                   
  22.                     if($indice === $rules['name']){
  23.                         foreach($reglas as $clave => $valores){                                        
  24.                             if($valores === "no-empty"){                               
  25.                                 $respuesta = $this->_noEmpty($rules['name'],$valor);
  26.                             }
  27.                             if($valores === "numeric"){                            
  28.                                 $respuesta = $this->_numeric($rules['name'],$valor);
  29.                             }
  30.                             elseif($valores === "email"){
  31.                                 $respuesta = $this->_email($rules['name'],$valor);
  32.                             }
  33.                         }
  34.                         break;
  35.                     }
  36.                 }
  37.             }
  38.             else{
  39.                 $this->mensaje[$rules['name']] = "el campo $value no esta dentro de la regla de validación o en el formulario";               
  40.             }
  41.         }      
  42.         if(!$respuesta){
  43.             return $this;
  44.         }
  45.     }  
  46.     /**
  47.     metodo para verificar si esta vacio el campo
  48.     */
  49.     protected function _noEmpty($campo,$valor)
  50.     {      
  51.         if(isset($valor) && !empty($valor)){           
  52.             return true;           
  53.         }
  54.         else{          
  55.             $this->mensaje[$campo][] = "el campo $campo debe de estar lleno";
  56.             return false;
  57.         }
  58.     }
  59.     /**
  60.     metodo para verificar que el campo sea numerico
  61.     */
  62.     protected function _numeric($campo,$valor)
  63.     {      
  64.         if(is_numeric($valor)){
  65.             return true;
  66.         }      
  67.         else{
  68.             $this->mensaje[$campo][] = "el campo $campo debe de ser numerico";
  69.             return false;
  70.         }
  71.     }
  72.     /**
  73.     metodo para verificacion de email
  74.     */
  75.     protected function _email($campo,$valor)
  76.     {
  77.         if(preg_match("/^[a-z]+([\.]?[a-z0-9_-]+)*@[a-z]+([\.-]+[a-z0-9]+)*\.[a-z]{2,}$/",$valor)){    
  78.             $this->mensaje[$campo][] = "el campo $campo de estar en el formato de email [email protected]";
  79.             return false;
  80.         }      
  81.     }
  82. }
  83. /*pruebas basicas a la clase sin incluirla en el modelo*/
  84. $_POST['campo1'] = 1;
  85. $_POST['campo2'] = "[email protected]";
  86. $datos = $_POST;
  87. $validacion =  new Validacion();
  88. $regla = array(
  89.             array('name'=>'campo1','regla'=>'no-empty,numeric'),
  90.             array('name'=>'campo2','regla'=>'no-empty,email')
  91.         );
  92. $validaciones = $validacion->rules($regla,$datos);
  93. print_r($validaciones);
  94. ?>

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
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way