Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/08/2005, 13:47
Avatar de vitxo
vitxo
 
Fecha de Ingreso: septiembre-2003
Ubicación: Valencia
Mensajes: 219
Antigüedad: 20 años, 8 meses
Puntos: 0
Zia,
existen implementaciones para conseguir objetos persistentes como Propel (http://sourceforge.net/projects/propel/). De tal forma, que el ciclo de vida de un objeto no se reduce al momento en que el usuario envía la petición hasta que recibe la respuesta generada por el servidor. Si quieres crear objetos una sola vez en cada petición, siempre puedes implementar el patrón Singleton. (http://www.phppatterns.com)

Cuando empecé a desarrollar aplicaciones web en PHP me ocurrió algo parecido a ti porque aprendí a crearlas en J2EE y, hasta que "cambias el chip" o el enfoque de tus aplicaciones, da la impresión de que todo es confuso e ineficiente. Pero no es así, por lo menos yo lo creo. :)
El quid de la cuestión es precisamente ése: por ejemplo en Java, una aplicación web se está ejecutando independientemente de que reciba o no peticiones HTTP por parte del usuario. En otros lenguajes de alto nivel como PHP, PERL o Ruby, la ejecución de la aplicación comienza con la petición del usuario a través de la URL y termina en el momento en que se le envía la respuesta, cosa que desde mi punto de vista, encaja mejor con el propio protocolo HTTP que carece de estado.

Pero bueno, sólo es una opinión. :)

Contando con que el motor de PHP es realmente muy rápido (el intérprete ejecuta un bytecode intermedio) y si diseñas tus aplicaciones ajustándote a su ciclo de vida y al contexto de PHP, conseguirás tiempos de ejecución muy buenos. En la empresa en la que trabajo, desarrollamos aplicaciones en PHP muy muy complejas y no utilizamos motores de persistencia de objetos. Desde mi punto de vista y si te sirve de algo, meter un motor de persistencia por medio para alargar la vida de tus objetos y mantener el estado para todas las peticiones probablemente te dé muchos quebraderos de cabeza.

un saludo, vitxo.