Retroceder   Foros del Web > Programación para sitios web > PHP > PHP orientado a objetos

Respuesta
 
Herramientas Desplegado
Antiguo 23-jun-2005, 11:19   #1 (permalink)
dominguez está en el buen camino
 
Fecha de Ingreso: julio-2003
Mensajes: 458
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-jun-2005 a las 12:23.
dominguez está desconectado   Responder Citando
Antiguo 23-jun-2005, 12:25   #2 (permalink)
lbnumxyz ha deshabilitado el karma
 
Fecha de Ingreso: junio-2005
Mensajes: 6
lbnumxyz

Dominguez deberias pensar en trabajar con js para manejar eventos para luego transferirlos hacia tu objeto controlador php. Es una idea.
lbnumxyz está desconectado   Responder Citando
Antiguo 23-jun-2005, 12:54   #3 (permalink)
dominguez está en el buen camino
 
Fecha de Ingreso: julio-2003
Mensajes: 458
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.
dominguez está desconectado   Responder Citando
Antiguo 23-jun-2005, 17:26   #4 (permalink)
gnfrs está en el buen camino
 
Fecha de Ingreso: abril-2004
Ubicación: Rosario
Mensajes: 113
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
gnfrs está desconectado   Responder Citando
Antiguo 24-jun-2005, 07:39   #5 (permalink)
HerSAn está en el buen camino
 
Fecha de Ingreso: mayo-2005
Mensajes: 161
Enviar un mensaje por MSN a 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..
HerSAn está desconectado   Responder Citando
Antiguo 24-jun-2005, 10:46   #6 (permalink)
dominguez está en el buen camino
 
Fecha de Ingreso: julio-2003
Mensajes: 458
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.
dominguez está desconectado   Responder Citando
Antiguo 19-jul-2005, 09:22   #7 (permalink)
adriancid está en el buen camino
 
Avatar de adriancid
 
Fecha de Ingreso: abril-2005
Ubicación: Versalles, Santiago de Cuba, Cuba
Mensajes: 53
Enviar un mensaje por ICQ a adriancid Enviar un mensaje por MSN a adriancid Enviar un mensaje por Yahoo  a adriancid Enviar un mensaje por Skype™ a adriancid
Aqui tienes una bueno solucion a tu problema

http://www.tonymarston.net/php-mysql...structure.html
adriancid está desconectado   Responder Citando
Antiguo 14-oct-2005, 01:04   #8 (permalink)
clasen ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2004
Mensajes: 18
Enviar un mensaje por MSN a clasen
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 tincho2k@hotmail.com
Te quisiera hacer algúnas consultas acerca de mapping a bd en PHP.

GRacias!
clasen está desconectado   Responder Citando
Antiguo 14-oct-2005, 02:02   #9 (permalink)
Moderador PHP
jpinedo ha deshabilitado el karma
 
Avatar de jpinedo
 
Fecha de Ingreso: septiembre-2003
Ubicación: Piura
Mensajes: 2.744
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
jpinedo está desconectado   Responder Citando
Antiguo 18-oct-2005, 08:18   #10 (permalink)
Casuis ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2005
Mensajes: 132
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
Casuis está desconectado   Responder Citando
Antiguo 03-nov-2005, 14:53   #11 (permalink)
HerSAn está en el buen camino
 
Fecha de Ingreso: mayo-2005
Mensajes: 161
Enviar un mensaje por MSN a HerSAn
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..
HerSAn está desconectado   Responder Citando
Antiguo 11-nov-2005, 12:32   #12 (permalink)
Colaborador
Webstudio tiene algunos puntos positivos de karma
 
Avatar de Webstudio
 
Fecha de Ingreso: noviembre-2002
Ubicación: 127.0.0.1
Mensajes: 3.341
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
__________________
Productos en Venta | Hoy-Vendo.com.ar
Artículos PHP | ZonaPHP.com
Webstudio está desconectado   Responder Citando
Respuesta

Calificación: Calificación de Tema: 1 votos, 5,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:23.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93