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

Programacion a 3 capas PHP

Estas en el tema de Programacion a 3 capas PHP en el foro de Frameworks y PHP orientado a objetos en Foros del Web. 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 ...

  #61 (permalink)  
Antiguo 13/03/2009, 13:38
 
Fecha de Ingreso: marzo-2009
Mensajes: 1
Antigüedad: 15 años, 1 mes
Puntos: 0
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
  #62 (permalink)  
Antiguo 13/03/2009, 13:44
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: Programacion a 3 capas PHP

Cita:
Iniciado por Soymejorquetu Ver Mensaje
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.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #63 (permalink)  
Antiguo 19/04/2009, 17:06
 
Fecha de Ingreso: abril-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
De acuerdo 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
  #64 (permalink)  
Antiguo 19/04/2009, 17:32
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 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!
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #65 (permalink)  
Antiguo 19/04/2009, 18:34
Avatar de pabx  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo, Uruguay
Mensajes: 16
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Programacion a 3 capas PHP

Cita:
Iniciado por Andrescu Ver Mensaje
- 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 Ver Mensaje
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.
  #66 (permalink)  
Antiguo 19/04/2009, 21:09
 
Fecha de Ingreso: abril-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Respuesta: Programacion a 3 capas PHP

Cita:
Iniciado por enriqueplace Ver Mensaje
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 Ver Mensaje

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 .

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 , y quizas asi pueda implementar algo mejor.

Gracias a todos.

Andres Chavez
  #67 (permalink)  
Antiguo 19/04/2009, 21:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
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.
  #68 (permalink)  
Antiguo 20/04/2009, 06:01
Avatar de pabx  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo, Uruguay
Mensajes: 16
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Programacion a 3 capas PHP

Cita:
Iniciado por Andrescu Ver Mensaje
Claro, eso mismo ORM. Voy a investigar tu framework, claro, si tu me lo permites , 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.
  #69 (permalink)  
Antiguo 22/04/2009, 12:40
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 22 años, 3 meses
Puntos: 0
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.
  #70 (permalink)  
Antiguo 22/04/2009, 12:46
Avatar de pabx  
Fecha de Ingreso: noviembre-2008
Ubicación: Montevideo, Uruguay
Mensajes: 16
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Programacion a 3 capas PHP

Cita:
Iniciado por biblio Ver Mensaje
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.
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.
Tema Cerrado

SíEste tema le ha gustado a 8 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 00:12.