Foros del Web » Programando para Internet » PHP »

Dudas con PHP OO

Estas en el tema de Dudas con PHP OO en el foro de PHP en Foros del Web. Buenos días.. hace tiempo que programo PHP de forma estructurada, pero ahora que vi Java orientado a objetos, se me vino a la cabeza empezar ...
  #1 (permalink)  
Antiguo 18/09/2010, 07:21
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Pregunta Dudas con PHP OO

Buenos días..
hace tiempo que programo PHP de forma estructurada, pero ahora que vi Java orientado a objetos, se me vino a la cabeza empezar tambien con PHP Orientado a Objetos y aca en donde tengo un par de dudas..

basicamente lo que me sucede es que no sabria como se manjea el tema de los objetos y las paginas.. osea un objeto que es creado en INDEX.PHP, podria ejecutar metodos o recuperar ese objeto desde OTRA.PHP ?

no se como explicarme correctamente,
si no se entiende me dicen..

Muchas Gracias!
  #2 (permalink)  
Antiguo 18/09/2010, 09:58
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Dudas con PHP OO

No entiendo muy bien el ejemplo que colocas. Si todo se maneja dentro de la misma petición (o sea, estás usando require_once o similares) es perfectamente posible.

Más información sobre objetos y clases en el manual:
http://www.php.net/manual/es/language.oop5.php
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 18/09/2010, 18:27
Avatar de bng5  
Fecha de Ingreso: junio-2009
Ubicación: 127.0.0.1
Mensajes: 269
Antigüedad: 14 años, 10 meses
Puntos: 24
Respuesta: Dudas con PHP OO

No tengo claro el funcionamiento de Java en servidores web, así que no podría marcarte las diferencias entr PHP y Java.

Si hace tiempo que programás en PHP sabés que al recibir una petición se ejecuta el "programa", devuelve una respuesta al cliente y finaliza la ejecución. No se mantiene ningún estado, el protocolo HTTP no maneja estado, todas las peticiones son independientes. El estado se puede simular con sesiones (datos persistidos) y el cliente indica cual es su sesión a través de (preferentemente) cookies.

Por lo que un objeto instanciado al hacer una petición a index.php es borrado de memoria al entregar una respuesta. Este objeto no existe al hacer una petición a otra.php. Se puede persistir o instanciar nuevamente en caso de ser necesario. En cualquiera de los casos index.php y otra.php deben tener acceso a la clase.
  #4 (permalink)  
Antiguo 19/09/2010, 18:32
Avatar de mandrake88  
Fecha de Ingreso: septiembre-2009
Mensajes: 328
Antigüedad: 14 años, 7 meses
Puntos: 13
Respuesta: Dudas con PHP OO

Si te pones a pensar, nunca vas a estar en la situacion en que tenes que pasar un objeto de una pagina a otra.

Vos diseñas tus unidades de software, definis la estructura de clases, y demas. Luego las paginas (index.php, otra.php, etc.) son clientes de esas clases que definis (pensalas como el metodo main en un programa Java comun), simplemente crean y utilizan objetos, los cuales se pierden al finalizar la ejecucion de la misma. Para mantener datos persistentes, utilizas las sesiones como te dijieron arriba, pero en ningun momento envias objetos de una pagina a otra.
  #5 (permalink)  
Antiguo 21/09/2010, 11:05
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Respuesta: Dudas con PHP OO

hola! gracias a todos por responder.. ya se me estan aclarando las cosas un poco, se me mezcla con JAVA y como que no puede sacar nada en claro..

una duda que tengo ahora, PHP donde crea los objetos, donde los almacena, en la memoria igual que java?

si fuese asi, nose si lo será pero en el caso que lo fuera,
no se puede pasar la direccion de un objeto a otra pagina de modo tal de seguir usandolo? capaz cualquier cosa la que acabo de decir...

lo que yo decia es si al crear un objeto determina en INDEX:PHP podria llamar a un metodo de ese objeto en otra pagina..
pero la unica forma seria almacenar los valores de ese objeto y volver a crear, por lo que pude entender, no es asi?

Muchas gracias!
  #6 (permalink)  
Antiguo 21/09/2010, 11:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Dudas con PHP OO

Claro, se guarda en memoria, pero el Garbage Collector de PHP lo elimina al terminar el script, recuerda que el procotolo HTTP es stateless, y por ende el servidor web invoca a PHP por cada request HTTP, y al finalizar libera la memoria.

Por eso es que tu debes de programar tus propios medios de persistencia si quieres pasar un objeto de una pagina A a una pagina B. Lo más común es usar sesiones.

Saludos.
  #7 (permalink)  
Antiguo 21/09/2010, 11:43
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Respuesta: Dudas con PHP OO

Cita:
Iniciado por GatorV Ver Mensaje
Claro, se guarda en memoria, pero el Garbage Collector de PHP lo elimina al terminar el script, recuerda que el procotolo HTTP es stateless, y por ende el servidor web invoca a PHP por cada request HTTP, y al finalizar libera la memoria.

Por eso es que tu debes de programar tus propios medios de persistencia si quieres pasar un objeto de una pagina A a una pagina B. Lo más común es usar sesiones.

Saludos.
esta perfecto.. ahora entiendo todo.. esa era mi mayor duda, no sabia como empezar a empezar (valga la redundancia) con PHP OO

muchas gracias a todos, cualquier duda, comentaré..

Saludos.
  #8 (permalink)  
Antiguo 21/09/2010, 11:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Dudas con PHP OO

Pues sea OO, o no, es igual la razón viene desde como se interpreta PHP y en que contexto, recuerda que PHP se ejecuta en el servidor y no en el cliente.

Saludos.

Etiquetas: Ninguno
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.
Respuesta




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