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

Más sobre 3 capas.

Estas en el tema de Más sobre 3 capas. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Desde hace una semana he venido leyendo artículos sobre la buena estrategia de programación resultado de implementar tres capas. Generalmente mis aplicaciones eran un revoltijo ...
  #1 (permalink)  
Antiguo 07/02/2006, 17:55
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Más sobre 3 capas.

Desde hace una semana he venido leyendo artículos sobre la buena estrategia de programación resultado de implementar tres capas.

Generalmente mis aplicaciones eran un revoltijo total de funciones, pero ahora que quiero verme más organizado tengo el siguiente problema.

Se supone que lo que el cliente ve es la capa de presentación. Yo desde la capa de presentación, no puedo (no debo) hacer consultas a la base de datos, más bien debo llamar a la capa del negocio para que ésta se ocupe de hacer las peticiones necesarias a la capa de datos. ¿Es correcto?

Ok, ahora viene el problema.

Quiero imprimir el resultado de una consulta en el navegador del cliente.

Normalmente lo haría con una función tipo:
Código PHP:
function imprime_consulta(parámetros de la consulta)
{
  
//Realizo un Query

  
foreach( para cada valor)
      {
         
Ve imprimiéndolo con formato HTML
      

¿Cómo se podría hacer eso en 3 capas? ¿Desde la capa de presentación pido a una función (de la capa de negocio) que me regrese un array multidimencional (pedido a su vez a una función que se comunicó con la base de datos) con los resultados de la consulta?

Cualquier cable me ayudaría a entender esta metodología de trabajo. Thanks.
  #2 (permalink)  
Antiguo 07/02/2006, 18:49
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
No veo la razón por la que hayan movido mi pregunta. Yo no programo en objetos.

Aquí nadie la va a ver.

Gracias por el favor.
  #3 (permalink)  
Antiguo 07/02/2006, 23:38
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 19
mmmm no me parece que fuera POO ...
es simplemente una forma de programar, que ayuda a mantener el orden dentro de los proyectos .. no la implemente nunca .. pero estaria bueno ...
quizas que me equivoque ... no pude encontrar algo en google .. estoy medio dormido ...
saludos
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #4 (permalink)  
Antiguo 08/02/2006, 04:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por uamistad
No veo la razón por la que hayan movido mi pregunta. Yo no programo en objetos.

Aquí nadie la va a ver.

Gracias por el favor.
Moví tu mensaje al foro de POO por qué la implementación natural de lo que propones se suele hacer en Programación Orientada a Obejos.

De hecho si miras en este sub-foro de POO veras muchos comentarios e implementaciones sobre separación de capas.

No digas que "nadie lo va a ver" por qué quedó referencia en el foro de PHP principal (sólo dice "movido" y además si hacen "click" en el mensaje igual lo ven desde este sub-foro o del principal).

Un saludo,
  #5 (permalink)  
Antiguo 08/02/2006, 05:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Revisa por ejemplo este mensaje (y comentarios de Webstudio sobre todo):

http://www.forosdelweb.com/f68/implementar-3-capas-342921/

Un saludo,
  #6 (permalink)  
Antiguo 08/02/2006, 14:00
Avatar de Hereje  
Fecha de Ingreso: junio-2002
Ubicación: Córdoba, Argentina
Mensajes: 439
Antigüedad: 21 años, 10 meses
Puntos: 2
Hola!

Por lo que leí en este artículo más mi interpretación, para programar en 3 capas explicitamente no es necesario hacerlo en POO. Este último paradigma es sólo cuestión de refinamiento y "profesionalidad". Para empezar, no me parece nada mal, ya que tenemos las tres capas separadas perfectamente.

Es sólo mi opinión, saludos!
__________________
Sergio
  #7 (permalink)  
Antiguo 08/02/2006, 14:10
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
De hecho, Clúster, ese mensaje fue el que me inspiró a buscar más sobre 3 capas y empezar a hacer mis códigos más 'reutilizables' y poderles dar mantenimento en forma más sencilla. Ahorita me la paso buscando artículos de ese estilo para ver cómo implementarlo en mis aplicaciones.

Hereje, gracias por pasar ese artículo, casi todo lo que he encontrado se refiere a tecnologías .net de esa área. Pero para integración en web casi nada, ese artículo que mandas es bueno, algo más en este mundo de la mantenibilidad de códigos. Thanks.
  #8 (permalink)  
Antiguo 09/02/2006, 06:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Creo que al final si quieres programa en "capas" (dá igual el n°). Al final acabas hablando de "objetos" .. como tal .. ahora que tu los quieras implementar con simples "funciones" y no encapsulados en una "classe" (que es lo que hace PHP para facilitar el uso y creación de "objetos"). Es otra cosa.

Pero .. si buscas información al respecto de "capas" veras que siempre se habla de "objetos" (en su parte teórica) y en su implementación siempre encapsulan todo bajo una "classe" (en PHP) por motivos simples de reutilización del código.

A mi en lo personal .. hablar de teorías sobre "capas" y no usar POO no le veo mucho sentido. Yo de hecho programo en "2 1/2 capas" (y sin usar POO completamente o nada incluso en muchos casos .. no es mi fuerte ni mis pretensiones, pero intento comprende el "concepto") .. sólo me preocupo de separar mi capa de presentación (y ni eso) usando motores de gestión de plantillas .. tengo funciones que me hacen de "capa de negocios" a la hora de obtener los datos que pido a mis "BBDD" dando un formato de "salida" de esos datos con un formato própio que mi aplicación requiera (normalmente genero un array con tales especificaciones) (también uso "capas de abastracción de BBD" para conectarme a mi BBD) y luego otras funciones o código directo para interactuar con esos datos que me devuelve la función que pide dados a mi BBDD y la que interactua con mi programación PHP (más lógica PHP: "capa de negocio") y de ahí a la presentación (es decir .. mezclo en cierta medida todo esto).

De esta forma como ya veras, cambiar un proceso que haga la "capa" (funcion?) de "negocios" no afecta para nada al proceso de la capa de "visualización" (por supuesto siempre que no generes otros datos o con otro formato .. ).

Si te fijas no hablo de "lo que verá el cliente" cuando menciono la "capa de presentación". Una "capa" es algo que hace alguna taréa concreta e interactua con otras. La "capa de presentación" sólo hace o debería hacer ese proceso: enviar los datos procesados ya (por tus "capa de negocios") a la salida que se dé a esos datos; lo normal será tal vez generar una página "HTML" .. pero también podrías generar un XML, una página para un dispositivo móvil .. etc. La capa de "negocios" es la que interactua con tus datos y aplica tu lógica de la aplicación .. en definitiva sólo maneja "datos" .. a su vez esta interactua con la BBDD por ejemplo si lo usas .. y para separar ese proceso más todavía en otra psudo-capa se usan las "capas de abstracción de BBDD" .. Realmente ahí no sé cuantas capas llevamos ya .. (me dá un poco igual, no quiero profundizar en el tema, .. no es mi objetivo principal).

Todo esto lo veras mejor explicado: la teoría si lees al respecto sobre Programación Orientada a Objetos. Luego tu veras como lo quieres implementar en PHP .. sea con funciones (algún día te darás cuenta de lo interesante que es usar "classes" .. y aplicar más teoría de la POO como "herencias" y demás ..) que lo que puedes hacer con funciones "sueltas", o usar POO directamente bajo PHP.

Un saludo,
  #9 (permalink)  
Antiguo 09/02/2006, 10:00
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Gracias Clúster por tus comentarios.

Parece que ha llegado la hora de dar el paso de la muerte, los temidos objetos, sabía que algún día me los iba a encontrar, jeje.

Mi temor a los objetos comenzó algún día que quise aprender Java y no entendí nada. Aún cuando ya tenía bastante experiencia programando en C. No así cuando aprendí PHP, que considero casi casi como una extensión de C, pero más divertido.

Ni modo, a darle a los objetos, :), thanks.
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 01:35.