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

formularios + POO (más)

Estas en el tema de formularios + POO (más) en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos! estoy implementando el típico "login" y me ha surgido un dilema. Tengo una clase para validar formularios (implementada como en WACT -http://wact.sourceforge.net/-, ...
  #1 (permalink)  
Antiguo 13/02/2004, 17:09
Avatar de vitxo  
Fecha de Ingreso: septiembre-2003
Ubicación: Valencia
Mensajes: 219
Antigüedad: 20 años, 7 meses
Puntos: 0
formularios + POO (más)

Hola a todos!

estoy implementando el típico "login" y me ha surgido un dilema.
Tengo una clase para validar formularios (implementada como en WACT -http://wact.sourceforge.net/-, usando el patrón comando, aunque eso da igual ahora mismo) que uso de la siguiente manera:
Código PHP:
$processor =& new FormProcessor$_POST );
//el campo de texto "usuario" es obligatorio y
// debe ser una palara de 4 a 15 letras.
$processor -> addRule'usuario', new RequiredRule() );
$processor -> addRule'usuario', new SizeRangeRule(4,15) );
//idem con la contraseña
$processor -> addRule'contrasenya', new RequiredRule() );
$processor -> addRule'usuario', new SizeRangeRule(6,15) ); 
//comprueba que esos dos campos cumplan esas reglas
$valido $processor -> validate(); 
Para validar el formulario que pongo al final del post.
Mi dilema de los webs: sería correcto realizar la autentificación del usuario (contra una base de datos) de las siguiente forma (y no encapsulándola en una clase que se encargue de las operaciones sobre usuarios?)?

Código PHP:
//siendo $user una instancia de la clase User
//que contiene los datos del registro en la BD.
$processor -> addRule'username',  new EqualToRule$user->getUsername() );

$processor -> addRule'password',  new EqualToRule$user->getPassword() );

$valido $processor->validate(); 
Es clase que se encarga de la gestión de usuarios es la que me permite recuperar un objeto representanto al usuario que está realizando el login, de ahi mi oscura duda sobre dónde meter ese código,

Aunque el FormProcessor funciona y ahorra tirar muchas líneas de código.
--
El formulario en cuestión es este:
Código PHP:
<form id="formarea" action="index.php?action=login" method="post">
<label for="usuario">Nombre de usuario</label>
<input type="text" id="usuario" name="usuario" value="<?php echo $post['usuario'?>" size="15"/>
<label for="contrasenya">Contraseña</label>
<input type="password" id="conrasenya" name="contrasnya" size="15"/>        
<input type="submit" class="button" id="loginaction" name="loginaction" value="Identificar"/>
</form>

Última edición por vitxo; 14/02/2004 a las 11:12
  #2 (permalink)  
Antiguo 14/02/2004, 10:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si entendí bien ..

Tienes una objeto que te valida propiedades de unas variables (en ese caso a nivel de "formato" atendiendo al tipo que es .. si un string o un numerico .. y rangos entre otras cosas).

Tambien tienes tu própia classe de validación del usuario contra tu BD ...

Si es eso lo que entendí .. y pregunas donde meter tu validación del usuario contra la BD .. creo que lo idoneo es que tengas aparte tu classe de validación del usuario en tu sistema .. así si bien ahora tienes ese módulo que valida contra una BD ... mañana haras uno que valide al usuario contra un servidor LDAP .. o contra un archivo de texto plano .. etc ..

Si no lo has hecho ya .. tendrias que tener un objeto "interface" entre tu sistema de autentificación y el medio de donde ha de contrastar los datos ..

Te lo comento desde el punto de vista de usuario de OOP .. ya que no soy desarrollador plenamente de OOP. Pero si he de usar una classe de ese tipo me gustaria así como la describo para que yo mismo si me animase poder hacer un "módulo" de obtención de los datos que requiera tu autentificación (usuario/password minimo) sobre otros médios: diferentes BD por si no usastes a su vez una capa de abastracción de BD ... de servidores LDAP como comenté .. u otros soportes.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 14/02/2004, 11:10
Avatar de vitxo  
Fecha de Ingreso: septiembre-2003
Ubicación: Valencia
Mensajes: 219
Antigüedad: 20 años, 7 meses
Puntos: 0
Sí, igual hago que el gestor de usuarios valide el formulario "directamente", es decir, que encapsule el "FormProcessor" y listo.

Aunque por lo pronto no me quiero entretener más y así terminar otras cosas para el lunes, así que he dejado la autentificación de la forma que arriba esbozo, que tampoco funciona mal, pq da gusto validar los formularios así, oye. (aún así me faltaría apurar el tema de las reglas que NO se cumplen para mejorar un poco el "sistema" de errores de la validación: es más lógico hacer llegar a la plantilla un objeto que con el apaño q tengo ahora )
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 01:29.