Ver Mensaje Individual
  #8 (permalink)  
Antiguo 09/02/2006, 06:20
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 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,