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

Separar Interfaz de la Logica

Estas en el tema de Separar Interfaz de la Logica en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, por un lado tengo una interfaz y por el otro la lógica de la aplicación y ambas las quiere tener separadas. Entonces he pensado ...
  #1 (permalink)  
Antiguo 23/06/2005, 11:19
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Separar Interfaz de la Logica

Hola, por un lado tengo una interfaz y por el otro la lógica de la aplicación y ambas las quiere tener separadas. Entonces he pensado en un objeto "Controlador" que reciba los eventos de esa interfaz, pero no sé como meter los datos del formulario en un método y llamar al "Controlador".

Este "Controlador" sería un Singleton??

Gracias.

Última edición por dominguez; 23/06/2005 a las 12:23
  #2 (permalink)  
Antiguo 23/06/2005, 12:25
 
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 18 años, 10 meses
Puntos: 0
lbnumxyz

Dominguez deberias pensar en trabajar con js para manejar eventos para luego transferirlos hacia tu objeto controlador php. Es una idea.
  #3 (permalink)  
Antiguo 23/06/2005, 12:54
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Bueno, realmente ese objeto sólo va a tratar con eventos del sistema como pueden ser altas,bajas, modificaciones, etc...

Si el fichero con el que trabajo se llama ficheroAlta.php, he pensado en poner en el mismo fichero, la creación del Controlador y llamada al método con los parámetros, algo asi:

ficheroAlta.php
----------------

$controlador = new Controlador();

$controlador->RealizarAlta($_POST['NOMBRE'],$_POST['APELLIDO'],...);

...
formulario que recoge los datos
...


Sería una buena idea? Alguien le ve alguna pega?

Gracias.
  #4 (permalink)  
Antiguo 23/06/2005, 17:26
 
Fecha de Ingreso: abril-2004
Ubicación: Rosario, Argentina
Mensajes: 124
Antigüedad: 20 años
Puntos: 11
De acuerdo

Hola.

Sería una buena idea? Alguien le ve alguna pega?

SIIIIIIIIIIIIIIi !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

En un sistema en 3 capas se separa el código de la siguiente forma:

1) Administración de bases de datos.
2) Reglas de negocios.
3) Interfasce usuario.

Lo que estás queriendo hacer es la capa de reglas de negocio, yo estoy armando algo como eso pero es muy complicado (ya tengo separadas las capas 1 y 3).

En pocas palabras:
  • A mí no me importa si quiero conectarme a MySql, Oracle, ODBC o MsSql porque de eso se encarga la capa 1.
  • No me interesa la grafica ya que eso es trabajo de la capa 3
Yo hago un $base->Query("SELECT * FROM ..."); sin importar qué motor utilizo, yo hago $botonEnviar->Draw(); sin decirle los "colores" o el formato, ahora, cómo hacer un $usuario->Agregar(...); ???????????????

No sé si me fui de tema, la idea de trabajar de esta forma es muy cómoda y vale la pena.

Saludos.-

Gabriel Luraschi
Estudio Quadra
www.estudioquadra.com.ar
  #5 (permalink)  
Antiguo 24/06/2005, 07:39
 
Fecha de Ingreso: mayo-2005
Mensajes: 201
Antigüedad: 19 años
Puntos: 2
Lo que necesitas para el ultimo, es lo que se comoce como mapper. En este mismo foro se trato el tema de los mapper`s. Inclusive webstudio dejo una liga de uno de los capitulos de un libro de matin fowler que habla sobre este tema. Tambien si no quieres batallar; ya que el tiempo no siemrpe esta a nuestro favor viene comentada dos opciones una que esta en las pear que es el DataOBject y otra implementacion que es para php5 que se llama propel si no mal recuerdo, en mi caso he usado el de las pear con bastante exito y es el que directamente te puedo recomendar el otro, no he tenido tiempo de usarlo por que no estoy usando actualmente php5 en mis desarrollos.

SAludos..
  #6 (permalink)  
Antiguo 24/06/2005, 10:46
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Bastaría con el patrón modelo-vista-controlador para separar la interfaz de la lógica de negocio??

El sentido de "arriba-abajo", es decir, desde la vista(interfaz), pasando por el controlador hasta llegar a la lógica(modelo) lo puedo ver mas o menos claro en PHP. Pero el sentido de "abajo-arriba" cómo sería??

X ejemplo si quiero presentar un conjunto de artículos en un formulario. Xq habría que "invocar" una interfaz de alguna manera.

Gracias por la ayuda.
  #7 (permalink)  
Antiguo 19/07/2005, 09:22
Avatar de adriancid  
Fecha de Ingreso: abril-2005
Ubicación: Versalles, Santiago de Cuba, Cuba
Mensajes: 53
Antigüedad: 19 años
Puntos: 0
Aqui tienes una bueno solucion a tu problema

http://www.tonymarston.net/php-mysql...structure.html
  #8 (permalink)  
Antiguo 14/10/2005, 01:04
 
Fecha de Ingreso: noviembre-2004
Mensajes: 18
Antigüedad: 19 años, 5 meses
Puntos: 0
Cita:
Iniciado por HerSAn
Lo que necesitas para el ultimo, es lo que se comoce como mapper. En este mismo foro se trato el tema de los mapper`s. Inclusive webstudio dejo una liga de uno de los capitulos de un libro de matin fowler que habla sobre este tema. Tambien si no quieres batallar; ya que el tiempo no siemrpe esta a nuestro favor viene comentada dos opciones una que esta en las pear que es el DataOBject y otra implementacion que es para php5 que se llama propel si no mal recuerdo, en mi caso he usado el de las pear con bastante exito y es el que directamente te puedo recomendar el otro, no he tenido tiempo de usarlo por que no estoy usando actualmente php5 en mis desarrollos.

SAludos..
Hola, soy Martín, Desarrollador PHP.
Mi MSN [email protected]
Te quisiera hacer algúnas consultas acerca de mapping a bd en PHP.

GRacias!
  #9 (permalink)  
Antiguo 14/10/2005, 02:02
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Hola clasen:

¿Y por qué no posteas esas dudas aquí en el foro?
Seguramente esas consultas pueden despertar sana curiosidad en los que no saben la respuesta (creo, a priori, que me puedo incluir en este grupo).

Y si llegan a haber respuestas interesantes, sería enriquecedor para todos los usuarios que pasen por aquí.

Saludos
  #10 (permalink)  
Antiguo 18/10/2005, 08:18
 
Fecha de Ingreso: septiembre-2005
Mensajes: 142
Antigüedad: 18 años, 7 meses
Puntos: 3
En fin después de mucho leer en el post veo que la gente anda un poco perdida en el tema, aunque el que más se acerca sea Dominguez.
El patrón Modelo-vista-controlador es precisamente un conjunto de patrones que operan entre si para separar las capas. Interface, negocio y modelo.

La forma más sencilla para separar las 3 logicas es usando paquetes o librerias desarrolladas para php.

MODELO
Para la capa de modelo podemos utilizar a mi entender dos paquetes muy buenos:
1) ADODB
2) PEAR:DB

Con esto conseguimos la abstracion de la base de datos. No se PEAR pero ADODB consigue conexión LDAP.

VISTA
Para la interface podemos utilizar un motor de templates que hay a patadas o utilizar nuestro modelado de XSL o lo que te venga en gana. Yo en este caso recomiendo SMARTY.

CONTROLADOR

Bueno el controlador lo tenemos que programar nosotros mismo pero el más simple no requiere más de 60 línias en php5 utilizando SMARTY y ADODB.
En fin Dominguez si te interesa más el tema puedes contactar. Aunque yo solo programo en PHP5
  #11 (permalink)  
Antiguo 03/11/2005, 15:53
 
Fecha de Ingreso: mayo-2005
Mensajes: 201
Antigüedad: 19 años
Puntos: 2
Cita:
Iniciado por Casuis
En fin después de mucho leer en el post veo que la gente anda un poco perdida en el tema, aunque el que más se acerca sea Dominguez.
El patrón Modelo-vista-controlador es precisamente un conjunto de patrones que operan entre si para separar las capas. Interface, negocio y modelo.

La forma más sencilla para separar las 3 logicas es usando paquetes o librerias desarrolladas para php.

MODELO
Para la capa de modelo podemos utilizar a mi entender dos paquetes muy buenos:
1) ADODB
2) PEAR:DB

Con esto conseguimos la abstracion de la base de datos. No se PEAR pero ADODB consigue conexión LDAP.

VISTA
Para la interface podemos utilizar un motor de templates que hay a patadas o utilizar nuestro modelado de XSL o lo que te venga en gana. Yo en este caso recomiendo SMARTY.

CONTROLADOR

Bueno el controlador lo tenemos que programar nosotros mismo pero el más simple no requiere más de 60 línias en php5 utilizando SMARTY y ADODB.
En fin Dominguez si te interesa más el tema puedes contactar. Aunque yo solo programo en PHP5
O puedes colocar tu codigo en las FAQs para que mas de un miembro del foro pueda hacer uso de el, o estudiarlo para hacer su propia implmentacion.
El detalle del patron MVC es que te dice que mediante un controlador reduces el acoplamiento entre la vista y el modelo, pero no te dice como implementarlo realmente. Asi que las respuestas estaban orientadas a ayudar en ese punto. El tema sobre MVC ya se ha tratado en mas de una ocasion y sobre el mismo punto, tu estas recomendando que usar pero no dices como implementarlo, es algo diferente. ya que desacoplar la vista del modelo puede hacerse con los patrone command, observer, mediator, por decir alguno.
__________________
Saludos!
Mty-NL..
  #12 (permalink)  
Antiguo 11/11/2005, 13:32
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Bueno, después de mucho tiempo sin pasarme por este lado (no solo del foro, sino del PHP en sí), y inspirándome en una respuesta larga que estaba pensando para este post, he preferido publicar mi opinión en ZonaPHP, para que todos la puedan leer allí. Básicamente, no nos liemos antes de tiempo.
Espero les sirva

http://www.zonaphp.com/articulo48.php
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:21.