Cita:
Iniciado por atrianaster Cuando trabajamos sobre aplicaciones web uno de los estilos arquitectónicos utilizado es el estilo Capas. En este estilo pueden utilizarse varias variantes, con 2 capas, 3 capas y hasta n capas, siendo el más común el de 3 capas.
La capa de presentación es la encargada de interactuar con el usuario y se corresponde con lo que tradicionalmente se conoce como interfaz de usuario.
En la capa de aplicación o intermedia es donde se localiza la lógica del negocio. Esta capa recibe la petición del usuario a través de la capa de presentación y se encarga de darle curso, recurriendo normalmente a los repositorios de información, dicha capa es donde se implementan las reglas del negocio, las validaciones y cálculos.
La capa de acceso a datos es la encargada de acceder a los repositorios de información, ejemplo de estas bases de datos.
Como se muestra en la figura la relación entre las capas es unidireccional, es decir solo las capas superiores pueden utilizar los servicios que brindan las capas inferiores, aunque los subsistemas que se encuentran en la misma capa si pueden interactuar entre si.
Te agradezco la respuesta.
Ya entendi mucha mas de la teoria de programar en N capas. El problema ahora lo tengo a la hora de implementacion.
Todavia no pude encontrar un buen ejemplo sencillo y explicito de como realizar el desarrollo.
Osea, todos hablan de index.php-->presentacion-->logica-->persistencia
El tema es que no encuentro un codigo de esto, no comprendo si lo hacen mediante includes o si van saltando de una pagina a la otra.
Hay muchisima documentacion de teoria pero de practica todavia no he encontrado, no se si es problema mio a la hora de buscar en los buscadores de internet, pero he visto que hay muchisima gente en el mismo estado que yo.
Yo lo que simplemente estoy buscando seria un ejemplo sencillo como el que plantie arriba. Una consulta a una base de datos hecha en 3 capas. Si viera el codigo+la documentacion que ya revise supongo que terminaria de entenderlo.
En todos los foros, blogs y paginas que he visto hablan de marcos teoricos y nadie lo desarrolla.
Por ejemplo, unas preguntas puntuales.
Teniendo el mismo esquema de directorios que plantie en el primer post.
Código:
index.php
/aplicacion/dominio/
/aplicacion/persistencia/
/aplicacion/presentacion/
/config/
1.- El index.php que hace? invoca a la configuracion de la aplicacion (sea constantes,etc.) y luego trae mediante un include dentro de presentacion a "la pagina para mostrar"? ¿O redirecciona a un archivo, llamemosle mostrar.php, dentro de la carpeta presentacion?
2.- Manteniendo el protocolo de que debe haber un orden al pasar por las capas. Digamos que ya se como publicar la capa de presentacion. Si quiero hacer una consulta bien sencilla. Si nada de nada entre medio, osea, link->va a una pagina que muestra un listado. ¿Que desarrollo se hace en la capa de logica y que desarrollo en la capa de persistencia? No termino de comprender si la consulta es parte de la logica y al objeto que instancia es parte de la persistencia.
3.- Otra cosa que no comprendo es si dentro de las separaciones fisicas (directorios) solo se incluyen las clases. Y Luego se desarrolla la aplicacion en el directorio raiz como si fuera programacion estructurada y se van instanciando objetos de cada capa.
Digamos que en el raiz tengo el index.php que muestra la pagina de presentacion con un link a la pagina (tambien en raiz) listar.php y este ultimo archivo instancia los objetos necesarios (de cada capa) para mostrar un listado dentro de una base de datos.
Por lo que verán, mis dudas van mas apuntadas al desarrollo que a la teoria. Entiendo perfectamente los motivos para implementar el concepto de N capas en un desarrollo. Entiendo la finalidad de la reutilizacion del codigo. Lo que estoy necesitando ahora es un ejemplo bien pero bien sencillo de toda esta teoria aplicado a php.