Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   Uso del patron Registry (http://www.forosdelweb.com/f68/uso-del-patron-registry-583980/)

IsildurMaC 07/05/2008 12:49

Uso del patron Registry
 
Amigos, desde hace dias estoy tratando de implementar el patron registry en una aplicacion 3 capas y no me funciona...he copiado el codigo de libros respetables, y lo he incluido en mi aplicacion y me pasa lo siguiente: cuando acceso a una pagina para realizar alguna accion, puedo acceder al objeto registry y almacenar informacion en el, y en la misma llamada a las clases puedo acceder nuevamente al objeto registry, siempre usando singleton, y sacar la informacion que antes había incluido en el, el problema viene cuando termino de ejecutar esa pagina y quiero saltar mediante un link para otra pagina, y es que ahi se me pierde toda la informacion almacenada en el objeto pues al parecer el singleton lo que me devuelve es un objeto nuevo, o sea que el static no me funciona, pues puse static la clase, los metodos, el array, implementé el método getinstance para el singleton, y nada de nada....

asi que si alguien lo ha implementado, no importa que sea en MVC, y me puede ayudar se lo agradecería, aunque si me lo pueden explicar en 3 capas o darme las explicaciones de por que no se puede igual me interesa la informacion.

Saludos a todos.

GatorV 07/05/2008 13:15

Re: Uso del patron Registry
 
Hola IsildurMaC,

Tu problema viene en el entendimiento general de PHP, PHP es un lenguaje de una instancia, es decir:

Cliente pide pagina.php -> Servidor ejecuta pagina.php -> PHP se inicia, ejecuta y compila pagina.php -> PHP limpia los recursos usados por pagina.php -> PHP le informa a Servidor que ha terminado -> Servidor envía resultado a cliente.

Si ves ese diagrama es muy basico, el como funciona PHP.

Cuando tu usas una variable static con PHP, esa variable static solo es valida durante el proceso actual, es decir cuando se esta ejecutando, al terminar la variable es limpiada automáticamente.

Lo que tu necesitas hacer es si deseas que esos resultados se puedan pasar a las demas instancias de tu pagina, es usar variables de sesión, con estas podrás guardar la información de tu instancia y recuperarlas en una página posterior.

Saludos.

enriqueplace 08/05/2008 09:12

Re: Uso del patron Registry
 
Estimado, te olvidas del "stateless" del ambiente web: todo lo que haces dura lo que dura la ejecución de una página, luego que el servidor te "sirve" lo que pides, se "olvida" de ti ;-)

La única forma que funcione lo que intentas hacer es "persistiendo" esa información, o a través de sesiones o un simil que podría ser guardarndo la info en una tabla y luego recuperándola desde otra página.

Hay tecnologías que te resuelven este tema, como en J2EE o .Net, pero se debe a que han implementado algo de esto (persistencia), este comportamiento es el estándar de la web, así está especificado que deben funcionar los servidores web.

IsildurMaC 10/05/2008 10:26

Re: Uso del patron Registry
 
OK amigos, gracias por la respuesta. hasta que no me tope con el libro sobre patrones de diseño en PHP, de la revista php|architect, y este sitio: http://www.phppatterns.com/docs/design/the_registry en mi cabeza estaba la explicacion que me dió GatorV, luego de leerlos me dieron a entender otra cosa, que me servia para toda la aplicacion, pues en ningun momento dicen lo contrario, tal vez porque sea arto evidente, y medio bruto yo :-D....

saludos.

webseficientes 13/05/2008 13:02

Re: Uso del patron Registry
 
Hola! al que le interese saber un poco más sobre el patron Registry, y otros patrones, aplicados a Php, este sitio tiene buena info y ejemplos http://www.patternsforphp.com/wiki/Registry


La zona horaria es GMT -6. Ahora son las 07:51.

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