Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   Programacion a 3 capas PHP (http://www.forosdelweb.com/f68/programacion-3-capas-php-441141/)

Soymejorquetu 13/03/2009 13:38

Respuesta: Programacion a 3 capas PHP
 
Queridos amigos, yo no se porque se matan la cabeza pensando en esto. Por distintas razones que se y que han expuesto algunos foristas muy sabiante, es imposible "por ahora" gerar una aplicacion en 3 capas con php. Problamente en php 7 (dentro de unos 2 años) se dignen a incorporar los elementos de orientacion a objetos que aun faltan para este objetivo.

Por tanto es inutil actualmente discutir este punto. Tengo 5 años programando en php y creame solo llegaran a 2 capas (cliente-servidor) caballeros.

Lo demas es arar en el mar................ Paciencia........... Y .net

enriqueplace 13/03/2009 13:44

Respuesta: Programacion a 3 capas PHP
 
Cita:

Iniciado por Soymejorquetu (Mensaje 2822219)
Queridos amigos, yo no se porque se matan la cabeza pensando en esto. Por distintas razones que se y que han expuesto algunos foristas muy sabiante, es imposible "por ahora" gerar una aplicacion en 3 capas con php. Problamente en php 7 (dentro de unos 2 años) se dignen a incorporar los elementos de orientacion a objetos que aun faltan para este objetivo.

Por tanto es inutil actualmente discutir este punto. Tengo 5 años programando en php y creame solo llegaran a 2 capas (cliente-servidor) caballeros.

Lo demas es arar en el mar................ Paciencia........... Y .net

Mmmm... creo que estás un poco confundido, "arquitectura de 3 capas" es simplemente conceptual y bien lo puedes hacer (digo, así hago los sistemas hace años), ideal sería tener algo como los namespaces, pero poder se puede.

Andrescu 19/04/2009 17:06

Respuesta: Programacion a 3 capas PHP
 
Porsupuesto que esto es posible. Quizas llego un poco fuera de tiempo, pero queria felicitarlos por una excelente discusion y a la vez consultarles como van con los respectivos desarrollos de frameworks, y quizas si existen nuevos descubrimientos.

Estoy a punto de comenzar un proyecto relativamente grande y me gustaria saber un poco mas sobre el tema de utilizar 3 capas en php, conosco esta metodologia y se que convinada con php se pueden lograr grandes cosas.

Ahora, a todo esto hago una sugerencia que quizas puede servirles. Como todos conocemos, las 3 capas son:

- Capa de Datos
- Capa de Negocios (Logica)
- Capa de Presentacion

A las cuales, si no me equivoco, aqui se les conoce por otros nombres.En fin, la sugerencia seria agregar una "capa" mas, y digo "capa" porque quizas no la consideren como una, si no parte de la Capa de Datos.

A esta "capa" yo la denomino "Capa de Entidades", en la cual se podrian crear objetos en base a los campos de la base de datos, para luego poder encapsularlos y manejarlos de una forma mas efectiva (como se trabaja en Java, si no me equivoco). No se si esto sea factible, quizas si, y por eso venia ante ustedes a consultarles.

Saludos

Andres Chavez

enriqueplace 19/04/2009 17:32

Respuesta: Programacion a 3 capas PHP
 
Que tal Andrés,

Cita:

Estoy a punto de comenzar un proyecto relativamente grande y me gustaria saber un poco mas sobre el tema de utilizar 3 capas en php, conosco esta metodologia y se que convinada con php se pueden lograr grandes cosas.
Creo que he puesto ejemplos en este foro sobre una forma de hacerlo, pero te lo comento nuevamente:
  1. Crear 3 carpetas con cada capa: presentación, dominio y persistencia (podrías llegar a tener una cuarta que sea "servicios" y se pueda usar desde cualquier capa).
  2. Si no tienes un sistema modular una sola entrada al sistema a través de index.php, deberás crear un archivo de configuración en la raiz de tu proyecto, que deberá ser incluído por todas las clases. Para engañar a las clases y estas simple puedan incluirlo sin importar de donde las llames, crea en cada capa un archivo de configuración que lo único que haga es incluir un ../configuracion.php (así siempre irán al único archivo sin muchas complicaciones).
  3. Crea fachadas (patrón facade) en cada capa / paquete, y ninguna clase debe acceder a una clase de un paquete sin pasar por la fachada.
Esto es a grandes rasgos lo estándar de "3 capas" y bajo PHP.

Comentario para el foro: dado que los moderadores de este foro me han "censurado" al bajar mi grado de "colaborador del foro" a "usuario común", voy a dejar de participar de forosdelweb.com, estoy respondiendo los temas en los cuales estoy aún suscripto por respeto a los usuarios a los cuales sí "colaboré" con mis aportes (tema el cual discrepan varios moderadores, que nunca sabré sus nombres, pero que cuentan con el apoyo del propio cvander).

A su vez, dada la "extrema moderación del foro", no sé cuanto tiempo pasará antes que borren cada uno de mis aportes.

Saludos!

pabx 19/04/2009 18:34

Respuesta: Programacion a 3 capas PHP
 
Cita:

Iniciado por Andrescu (Mensaje 2874871)
- Capa de Datos
- Capa de Negocios (Logica)
- Capa de Presentacion

Yo también manejo la misma nomenclatura para las capas.

La idea es que:

Presentacion: genere las páginas HTML a partir de un conjunto de información que le provee la capa de Negocios y lógica de presentación.

Negocios o Lógica: procese la información que el usuario le envía desde la presentación y se encargue de saber que vista o página le debe mostrar al usuario.

Datos: accede a la base de datos, para hacer consultas o modificar los datos ahí persistidos, es ejecutada por la capa de Negocios.

Más o menos así es el MVC.


Cita:

Iniciado por Andrescu (Mensaje 2874871)
A esta "capa" yo la denomino "Capa de Entidades", en la cual se podrian crear objetos en base a los campos de la base de datos, para luego poder encapsularlos y manejarlos de una forma mas efectiva (como se trabaja en Java, si no me equivoco). No se si esto sea factible, quizas si, y por eso venia ante ustedes a consultarles.

Aquí de lo que hablas, si entiendo bien, es de entidades (yo diría directamente clases) que se puedan manipular en un entorno orientado a objetos y que te permitan acceder y modificar la base de datos, esto se llama ORM. Busca información sobre esto, está la librería Doctrine que hace esto, también en mi framework (Yupp Framework) lo he implementado, este componente lo llamo Yupp ORM o YORM.


Saludos,
Pablo.

Andrescu 19/04/2009 21:09

Respuesta: Programacion a 3 capas PHP
 
Cita:

Iniciado por enriqueplace (Mensaje 2874885)
Si no tienes un sistema modular una sola entrada al sistema a través de index.php, deberás crear un archivo de configuración en la raiz de tu proyecto, que deberá ser incluído por todas las clases. Para engañar a las clases y estas simple puedan incluirlo sin importar de donde las llames, crea en cada capa un archivo de configuración que lo único que haga es incluir un ../configuracion.php (así siempre irán al único archivo sin muchas complicaciones).

Dime algo, en este archivo de configuracion, como seria recomendable tratar las variables, como constantes?, o quizas de algun otro modo?, ya que quiero crear un modulo en el cual estas variables se puedan cambiar, para que el sistema sea mas dinamico.

Cita:

Iniciado por enriqueplace (Mensaje 2874885)

Comentario para el foro: dado que los moderadores de este foro me han "censurado" al bajar mi grado de "colaborador del foro" a "usuario común", voy a dejar de participar de forosdelweb.com, estoy respondiendo los temas en los cuales estoy aún suscripto por respeto a los usuarios a los cuales sí "colaboré" con mis aportes (tema el cual discrepan varios moderadores, que nunca sabré sus nombres, pero que cuentan con el apoyo del propio cvander).

A su vez, dada la "extrema moderación del foro", no sé cuanto tiempo pasará antes que borren cada uno de mis aportes.

Saludos!

Sinceramente, no puedo comentar mucho acerca de esto, pero al menos en este tema, me he dado cuenta que eres un gran colaborador, has despejado muchas de mis dudas y creo que a la vez las de muchas personas. No se lo que habra pasado antes de mi entrada en esta comunidad, pero te pido porfavor sigas aqui con nosotros, gracias por todo :aplauso:.

Cita:

Iniciado por pabx
Aquí de lo que hablas, si entiendo bien, es de entidades (yo diría directamente clases) que se puedan manipular en un entorno orientado a objetos y que te permitan acceder y modificar la base de datos, esto se llama ORM. Busca información sobre esto, está la librería Doctrine que hace esto, también en mi framework (Yupp Framework) lo he implementado, este componente lo llamo Yupp ORM o YORM.

Claro, eso mismo ORM. Voy a investigar tu framework, claro, si tu me lo permites :-D, y quizas asi pueda implementar algo mejor.

Gracias a todos.

Andres Chavez

GatorV 19/04/2009 21:15

Respuesta: Programacion a 3 capas PHP
 
Yo creo que hay que pensar en una separación mas a nivel como comentaba enriqueplace, la capa de persistencia (o datos), debe de ser una capa de abstracción entre tu fuente de persistencia (ya sea una base de datos aunque no es siempre así) y tu controlador.

Lo que buscas mas a nivel de lógica es el paradigma de Active Table que te permite mapear un objeto a una tabla en la base de datos, pero como te comento esto debe de estar en una capa más abajo de tu capa de persistencia, la capa de persistencia es la encargada de comunicarse con esta capa para guardar / leer / actualizar los datos en la BDD.

Otra cosa que luego pasamos mucho de largo es que las plantillas (ya sea Smarty, PHP Template, etc.) NO es la capa de vista, ya que en un MVC la capa de vista es la encarga de comunicarse con el modelo (capa de persistencia).

Te recomendaría que vieras un poco la forma de implementación de Zend Framework tiene muy bien solucionado el implementar MVC en PHP separando perfectamente el Controlador (FrontController) de la capa de Datos, y la capa de Vista (Zend Controller Action + Zend View). Muchas veces nos confundimos en que la capa de vista (el template) es el encargado de obtener los datos y empezamos a complicar las cosas.

La capa de la vista (la acción) obtiene los datos y los procesa e imprime, en esta capa lo más recomendable es separar en dos la parte de PHP y la parte de presentación usando un motor de plantillas.

Espero con esto darte una idea un poco más concreta para que puedas hacer tu proyecto.

Saludos.

pabx 20/04/2009 06:01

Respuesta: Programacion a 3 capas PHP
 
Cita:

Iniciado por Andrescu (Mensaje 2875030)
Claro, eso mismo ORM. Voy a investigar tu framework, claro, si tu me lo permites :-D, y quizas asi pueda implementar algo mejor.

Como no, bajatelo, pruebalo, cambialo, mejoralo y hazmelo saber!

Lastima que no te pueda poner links para orientarte porque no me lo permiten las restricciones sobre spam, pero si buscas en google Yupp Framework llegarás a las páginas rápidamente. Lo que no te mencioné es que Yupp también implementa una variante de MVC, no es solo ORM si no ambas cosas.

Saludos y cualquier ayuda que necesites no dudes en consultar.

Pablo.

biblio 22/04/2009 12:40

Respuesta: Programacion a 3 capas PHP
 
Han tocado un poco de todo a lo largo de las respuestas, y están muy interesantes.

Además de conectarme despues de mucho tiempo, felicitaciones a esta comunidad que sigue para adelante.

Con respecto a las capas como ya bien lo dijeron es mas conceptual que una arquitectura o patrón de trabajo definido. El concepto de capas es escalable, como bien se podría tener 3 y las que quieras según las necesidades que se presenten, se debe entender que cada capa debe estar bajo un marco de concepto claro sobre la tarea que debe realizar.

Saludos a todos.

pabx 22/04/2009 12:46

Respuesta: Programacion a 3 capas PHP
 
Cita:

Iniciado por biblio (Mensaje 2879858)
Han tocado un poco de todo a lo largo de las respuestas, y están muy interesantes.

Además de conectarme despues de mucho tiempo, felicitaciones a esta comunidad que sigue para adelante.

Con respecto a las capas como ya bien lo dijeron es mas conceptual que una arquitectura o patrón de trabajo definido. El concepto de capas es escalable, como bien se podría tener 3 y las que quieras según las necesidades que se presenten, se debe entender que cada capa debe estar bajo un marco de concepto claro sobre la tarea que debe realizar.

Saludos a todos.

Plenamente de acuerdo, aquí se habla mucho de MVC, pero dependiendo del enfoque, un sistema podría tener más o menos de tres capas, la cantidad es lo de menos, lo principal es para que las queremos. El objetivo de las capas es que haya "algo" que se encargue de un aspecto y solo uno del sistema que estamos produciendo, y que otras partes del sistema no se preocupen por resolver lo que no le concierne a la capa a la cual pertenece. Como bien mencionas, depende de la arquitectura (bloques que constituyen el sistema y sus relaciones), no todo es 3 capas. Por ejemplo podría tener un sistema que a partir de una base de datos genere formularios que son llenados y guardados directamente, o sea tendría 2 capas, persistencia y presentación, nada de lógica.

Saludos,
Pablo.


La zona horaria es GMT -6. Ahora son las 08:24.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.