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

Duda formulario en POO

Estas en el tema de Duda formulario en POO en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a tod@s, Estoy desarrollando una aplicacion en php para la universidad. Mi intencion es hacer todo en PHP5 y separado en tres capas (Presentacion, ...
  #1 (permalink)  
Antiguo 23/05/2007, 08:41
 
Fecha de Ingreso: enero-2007
Mensajes: 11
Antigüedad: 17 años, 3 meses
Puntos: 0
Duda formulario en POO

Hola a tod@s,
Estoy desarrollando una aplicacion en php para la universidad. Mi intencion es hacer todo en PHP5 y separado en tres capas (Presentacion, Dominio, Persistencia). Mi duda es, en un formulario se pone en el atributo action del formulario el script que quieres que procese el formulario. Mi duda seria saber si es posible poner un metodo de una clase para que procese el formulario.
Espero haberme explicado bien,

Un saludo y gracias
  #2 (permalink)  
Antiguo 23/05/2007, 08:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Duda formulario en POO

Si es posible, pero, todo depende de como tengas programado tu sistema, en si debes de llamar a tu capa de dominio, y definirle que accion desear realizar, si estuvieras utilizando el patron MVC, el Router se encarga de que cuando tu mapees un URL:

/contactos/agregar/

Lo reescriba a la clase contactos metodo agregar, otra forma es utilizando algo mas sencillo:

index.php?controller=contactos&method=agregar

Con esto llamas de la clase contactos, al metodo agregar.
  #3 (permalink)  
Antiguo 23/05/2007, 09:10
 
Fecha de Ingreso: enero-2007
Mensajes: 11
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Duda formulario en POO

Cita:
Iniciado por GatorV Ver Mensaje
Lo reescriba a la clase contactos metodo agregar, otra forma es utilizando algo mas sencillo:

index.php?controller=contactos&method=agregar

Con esto llamas de la clase contactos, al metodo agregar.
Gracias por responder tan rapido.
Una duda, en el index tengo que poner un switch y un case para cada valor del controller y method, o si yo por ejemplo tengo un clase que se llame Empleado con poner

index.php?controller=empleado&method=borrar
valdria.

Gracias otra vez
  #4 (permalink)  
Antiguo 23/05/2007, 09:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Duda formulario en POO

Tendrias que evaluar, como te digo todo depende de tu router. Se puede hacer con un switch o direcamente cargando desde GET sabiendo que tus variables son fiables:

Código PHP:
$controller $_GET['controller'];
$method $_GET['method'];
include( 
'libs/' $controller );
$obj = new $controller();
$obj->$method(); 
Claro tienes que probar si existe el archivo, si existe el metodo, etc. Como te digo todo depende de tu Router que tan poderoso sea.

Saludos.
  #5 (permalink)  
Antiguo 23/05/2007, 10:26
Avatar de vanetino  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima, Peru
Mensajes: 22
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Duda formulario en POO

Hola GatorV, aproposito del router, queria aprovechar tu mente siempre tan lucida para hacerte una consulta.

Tengo mi router, pero me causa lio pasarle parametros a algunas metodos que dependen de (GET['action']), ya que algunos metodos son con parametros y algunos no, ojo que estos parametros no los recogo por GET ni POST.

pongo un caso de ejemplo:

tengo mi clase Usuario

$user = new user();

este lo manejo por sesion y tiene estados de accesos segun si esta logeado.

por ejemplo necesito usar esta clase dentro de algunas clases, y por eso lo quiero pasar como parametro ya que tengo mi constructor en algunas clases que tienen que inicializar con valores de la clase Usuario.

si recogo los parametros de controller y action resulta un poco rigido saber cuando y como poder poner como parametro mi clase.

espero haberme esplicado bien.

agradezco por anticipado cualquier sugerencia.
  #6 (permalink)  
Antiguo 23/05/2007, 10:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Duda formulario en POO

Aqui puedes tener dos posibilidades:
1.- Guardar tu objeto usuario en una variable de sesion, asi la puedes disponer desde cualquier pagina.
2.- Implementar Singleton en tu clase usuario para que la inicies una vez y cada vez que la necesites la mandas llamar.

Saludos.
  #7 (permalink)  
Antiguo 23/05/2007, 11:16
Avatar de vanetino  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima, Peru
Mensajes: 22
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Duda formulario en POO

gracias por tu respuesta.

la primera alternativa me parece mas viable ya que yo uso los valores de la clase Usuario en la pagina, pero que pasa si lo tengo de esta manera:

if($isset($_SESSION['usuario'])){
$usuario = $_SESSION['usuario'];
}else{
$_SESSION['usuario']= new User();
$usuario = $_SESSION['usuario'];
}

de aqui en adelante uso la clase usuario como $usuario.

claro al final le paso a $_SESSION['usuario'] mi variable $usuario.

A mi clase $usuario cuando los paso como parametro lo paso por referencia, tu crees que me estoy complicando la vida? o si es posible hacer esto de alguna manera.

gracias de antemano por tu respuesta.

Saludos

Vanetino
  #8 (permalink)  
Antiguo 23/05/2007, 11:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Duda formulario en POO

No entiendo tu pregunta, si esta bien que lo guardes en una variable de sesion, pero no entiendo cual es tu duda, si la pudieras replantear estaria muy agradecido.
  #9 (permalink)  
Antiguo 23/05/2007, 11:34
Avatar de vanetino  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima, Peru
Mensajes: 22
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Duda formulario en POO

hola creo saber que parte no explique bien.

bueno lo que pasa es que yo asigno mi variable de session:

verifico que no esta asignado para iniciar o no un nuevo usuario
si ya esta asignado y e iniciado mi usuario solo le asigno a $user la
session $_SESSION['usuario'].

if(isset($_SESSION['usuario'])){
$user = $_SESSION['usuario'];
}else{
$_SESSION['usuario']= new User();
$user = $_SESSION['usuario'];
}

Asi en adelante solo uso $user y no $_SESSION['usuario']; y cuando paso $user como parametro a otras clases, las paso como referencia ya que pueden cambiar algunas propiedades.

bueno espero haber explicado bien esta vez.

Saludos

Vanetino.
  #10 (permalink)  
Antiguo 23/05/2007, 12:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Duda formulario en POO

Si es posible hacerlo asi, aunque para que no estes enviando y enviando por diferentes clases deberias de implementar una clase con un patron singleton que te regrese el objeto, algo asi:
Código PHP:
class PUser {
     public static function 
getUser() {
           if(isset(
$_SESSION['usuario'])){
                 
$user $_SESSION['usuario'];
           }else{
                 
$_SESSION['usuario']= new User();
                 
$user $_SESSION['usuario'];
           }
           return 
$user;
     }

Asi puedes usar:
Código PHP:
$user PUser::getUser(); 
y ya modificarlo, dependiendo de tu version de PHP, necesitaras regresar el parametro por referencia.
  #11 (permalink)  
Antiguo 23/05/2007, 13:17
Avatar de vanetino  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima, Peru
Mensajes: 22
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Duda formulario en POO

gracias GATORV sabia que me podias ayudar.

Saludos

Vanetino
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 16:57.