Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Lógica para crear clase

Estas en el tema de Lógica para crear clase en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buen día y gracias por leer este tema, Lo que pretendo es crear una clase para validar los formularios de la aplicacion que esto desarrollando, ...
  #1 (permalink)  
Antiguo 03/11/2011, 08:56
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Lógica para crear clase

Buen día y gracias por leer este tema,

Lo que pretendo es crear una clase para validar los formularios de la aplicacion que esto desarrollando, pero la verdad no estoy seguro de que camino tomar, hasta el momento he pensado dos formas;

La primera seria crear una clase la cual tendrá un método por cada formulario de la aplicación, pero este tipo de clase no me parece muy escalable que digamos.


Código PHP:
Ver original
  1. class ValidateForms{
  2.  
  3. public function form1(){
  4. validar campo1;
  5. validar campo2;
  6. validar campoN;
  7. return TRUE or FALSE;
  8. }
  9.  
  10. public function form2(){
  11. validar campo1;
  12. validar campo2;
  13. validar campoN;
  14. return TRUE or FALSE;
  15. }
  16.  
  17. }


La segunda es una clase que valide por campos que existan en los formularios para poder usarla independiente del formulario que quiera validar:


Código PHP:
Ver original
  1. class ValidateForms{
  2.  
  3. public funtion validateMail($correo){
  4. is mail ?
  5. return TRUE or FALSE;
  6. }
  7.  
  8. public funtion validateEmpty($campoTXT){
  9. is empty ?
  10. return TRUE or FALSE;
  11. }
  12.  
  13. }


El único problema que le veo al segundo es que en el controlador de los formularios tendría llamar método por método para validar los campos que necesito validar.

Alguien me puede dar una idea para manejar esta situación ? muchas gracias.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #2 (permalink)  
Antiguo 03/11/2011, 16:07
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Lógica para crear clase

Bueno, yo lo que te aconsejo es que siempre que quieras desarrollar algo tan utilizado como una clase de validación, te descargues alguna ya existente para ver como trabaja y así hacer algo sobre una base.

De todas formas, yo te recomendaría que sólo tuvieras un método que se puede llamar, valida, y que previamente le pases a la clase la configuración de tu validación en forma de array.

Mira, te paso un ejemplo de como lo hace codeigniter:

http://codeigniter.com/user_guide/li...alidation.html

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #3 (permalink)  
Antiguo 03/11/2011, 18:10
 
Fecha de Ingreso: octubre-2011
Mensajes: 37
Antigüedad: 12 años, 6 meses
Puntos: 9
Respuesta: Lógica para crear clase

me parecen buenas ideas, pero yo la lógica para validar formularios la escribiría en javascript, aunque no sé si en tu caso quieres prescindir de él y prefieres recargar la página para hacer la validación
  #4 (permalink)  
Antiguo 03/11/2011, 18:20
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Lógica para crear clase

En serio ?, y para que el usuario no desactive js que haces ? rezar ?
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 04/11/2011, 01:57
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Lógica para crear clase

Hola buenas,

Exacto, yo lo que hago es siempre una doble validación, del lado cliente con javascript, y del lado servidor por si alguien joder o simplemente tiene el javascript desactivado.

También puedes hacerlo con AJAX, pero no te olvides de validar siempre del lado servidor.

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #6 (permalink)  
Antiguo 04/11/2011, 05:06
 
Fecha de Ingreso: octubre-2011
Mensajes: 37
Antigüedad: 12 años, 6 meses
Puntos: 9
Respuesta: Lógica para crear clase

despues de ver que ni facebook, ni badoo ni google rezan, yo tampoco rezaria, hay que adaptarse a los tiempos chavales, herramientas sobran, me parece perfecta la compatibilidad pero javascript ya tiene 16 años, es hora ya...
  #7 (permalink)  
Antiguo 04/11/2011, 07:04
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Lógica para crear clase

La validación de javascript ya esta hecha con esa con tengo ningún problema, lo que quiero es desarrollar la segunda validación con PHP pero la verdad no se cual de las dos opciones sea la mas indicada.

Que ideas me pueden brindar ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #8 (permalink)  
Antiguo 04/11/2011, 07:41
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Lógica para crear clase

Que tal jotaincubus,

De las opciones que expones me iria con la segunda, ahora como te sugiere miktrv podrias mirar en los diferentes fw's para ver como lo implementan.

@loluchis, seguro que esos sites no rezan y seguro no dejan la validación de los datos únicamente en manos del cliente, que te obliguen a utilizar js no quiere decir que no hagan las cosas como corresponden.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Última edición por masterpuppet; 04/11/2011 a las 07:48
  #9 (permalink)  
Antiguo 04/11/2011, 08:02
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Lógica para crear clase

A mi también me parece la mas indicada, el problema viene en el controlador del formulario, supongamos que el formulario tiene 10 campo s o + pero de esos solo necesito verifica 6, el controlador quedaría:

Código PHP:
Ver original
  1. <?php
  2. $objt = new  ValidateForms;
  3. $mail = $objt->validateMail($_POST['correo']);
  4. $vacio = $objt->validateEmpty($_POST['campoTXT']);
  5. $otro = $objt->validateOtro($_POST['otro']);
  6. $tel = $objt->validateINT($_POST['telefono']);
  7. $birth = $objt->validateINT($_POST['edad']);
  8. //.... y así con todos los campos que necesite validar.
  9. ?>

Es esta una buena practica ?
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #10 (permalink)  
Antiguo 04/11/2011, 09:13
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Lógica para crear clase

Cita:
Iniciado por loluchis Ver Mensaje
despues de ver que ni facebook, ni badoo ni google rezan, yo tampoco rezaria, hay que adaptarse a los tiempos chavales, herramientas sobran, me parece perfecta la compatibilidad pero javascript ya tiene 16 años, es hora ya...
Exacto. Esos sitios no rezan, tienen validación de ambos lados. Algunos solo tienen validación del lado del servidor (ej: el login de Facebook).
El hecho de que Javascript lleve mucho tiempo en el mercado no significa que deba ser adoptado por todos y joder a quienes no lo tienen activado.
  #11 (permalink)  
Antiguo 05/11/2011, 04:36
 
Fecha de Ingreso: octubre-2011
Mensajes: 37
Antigüedad: 12 años, 6 meses
Puntos: 9
Respuesta: Lógica para crear clase

bueno, mi intencion no es alargar esto, pero simplemente probadlo, meteros en alguno de esos sitios, por ejemplo la nueva red social google plus con javascript desactivado, solo vereis el header, si os meteis a facebook con javascript desactivado, os comentara que u os bajais un navegador con javascript o utilizais la version movil, asi de simple, si es que el tema no es discutiros, simplemente que si los grandes pasan de adaptarse a los que aun no han sido capaces de actualizar su navegador con las alternativas que existen (opera, chrome, firefox, etc..) pues yo tampoco me esforzaria en ello, ahora si desarrollamos (me incluyo) una buena clase entre todos para validacion de forms en php pues perfecto, no digo que no la vaya a usar...

vamos, que se trata de opiniones, un saludo a todos
  #12 (permalink)  
Antiguo 05/11/2011, 04:58
 
Fecha de Ingreso: octubre-2011
Mensajes: 37
Antigüedad: 12 años, 6 meses
Puntos: 9
Respuesta: Lógica para crear clase

volviendo al tema, hay una persona que se esta tragando discusiones innecesarias y sigue buscando una solucion, simplemente trate de dar mi punto de vista, de ahorrar esfuerzos, aqui propongo mi solucion:

podrias declarar unas reglas, de esta forma:
Código PHP:
$reglas = array(
   
'nombre_campo' => 'tipo_campo',
   
'correo' => 'email',
   
'contrasena' => 'password'
); 
Código PHP:
class Form {

protected 
$data;
protected 
$rules;

public function 
__construct(array $rules, array $data = array()) {
   
$this->rules $rules;

   if(empty(
$data)) {
      
$data $_POST;

   
$this->data $data;
}

public function 
validate() {
   foreach(
$this->data as $field => $value) {
      foreach(
$this->rules as $name => $type) {
         if(
$field == $name) {
            switch(
$type) {
               case 
'email':
                  if(!
$this->validateEmail($value))
                     return 
false;
               case 
'password':
                  if(!
$this->validatePassword($value))
                     return 
false;
            }
         }
      }
   }
   return 
true;
}

public function 
validateEmail($value) {
   return 
true;
}

public function 
validatePassword($value) {
   return 
true;
}


esta cascado aqui en un momento, habria que pulirlo supongo:

Código PHP:
//luego cuando recibes el formulario en este script podrias hacer algo asi:

if(isset($_POST['submit'])) {
   
$reglas = array(
      
'nombre_campo' => 'tipo_campo',
      
'correo' => 'email',
      
'contrasena' => 'password'
   
);
   
$form = new Form($reglas$_POST);
   
   if(
$form->validate() == true) {
      echo 
'formulario valido';
   }
   else
      echo 
'errores en el formulario';

ese es mi aporte, saludos.
  #13 (permalink)  
Antiguo 05/11/2011, 06:31
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Lógica para crear clase

Muchas gracias por tu respuesta es lo que estaba buscando.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???

Etiquetas: clase, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:28.