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

Permanencia de objetos...

Estas en el tema de Permanencia de objetos... en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a tod@s: Estoy desarrolando una web en php con acceso a datos mysql. Resulta que los datos los cargo en unos objetos que paso ...
  #1 (permalink)  
Antiguo 12/04/2007, 10:20
 
Fecha de Ingreso: septiembre-2006
Mensajes: 105
Antigüedad: 17 años, 8 meses
Puntos: 0
Permanencia de objetos...

Hola a tod@s:

Estoy desarrolando una web en php con acceso a datos mysql. Resulta que los datos los cargo en unos objetos que paso de una página a otra "serializandolos". El acceso a la base de datos es lento. De hecho, muchas veces es tan lento que los usuarios mas nerviosos pueden pulsar F5 o el icono de "actualizar", lo que me da este error:


Warning: unserialize() expects parameter 1 to be string, object given in C:\directorio_noseque\index2.php on line 19

Warning: unserialize() expects parameter 1 to be string, object given in C:\directorio_noseque\index2.php on line 23

Warning: unserialize() expects parameter 1 to be string, object given in C:\directorio_noseque\index2.php on line 26

Fatal error: Call to a member function dame_alum() on a non-object in C:\directorio_noseque\index2.php on line 32

Mi pregunta: ¿a qué se debe este tipo de error? Se supone que los objetos serializados se mandarían de nuevo con cada "actualización de la pantalla", ¿no?

Gracias por vuestras respuestas y vuestro tiempo.
  #2 (permalink)  
Antiguo 12/04/2007, 10:31
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
Re: Permanencia de objetos... chungo, chungo...

Puedes poner el codigo de como estas enviando los objetos?
  #3 (permalink)  
Antiguo 12/04/2007, 10:32
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
Re: Permanencia de objetos... chungo, chungo...

y el codigo de como lo recibes?
  #4 (permalink)  
Antiguo 12/04/2007, 11:49
 
Fecha de Ingreso: septiembre-2006
Mensajes: 105
Antigüedad: 17 años, 8 meses
Puntos: 0
De acuerdo Re: Permanencia de objetos... chungo, chungo...

Estupendo:

//Creación/recuperación de los objetos de la web
if(!isset($_SESSION["sistema"]))
{
$sistema=new sistema_web();
}
else
{
$sistema=unserialize($_SESSION["sistema"]);
}

if(isset($_SESSION["usuario"]))
$usuario=unserialize($_SESSION["usuario"]);

if(isset($_SESSION["testAlumno"]))
$testAlumno=unserialize($_SESSION["testAlumno"]);

if(isset($_SESSION["testProfesor"]))
$testProfesor=unserialize($_SESSION["testProfesor"]);


y para serializarlos:

//Guardamos en la sesión los objetos de la web
$_SESSION["sistema"]=serialize($sistema);
if(isset($usuario))
$_SESSION["usuario"]=serialize($usuario);
if(isset($testAlumno))
$_SESSION["testAlumno"]=serialize($testAlumno);
if(isset($testProfesor))
$_SESSION["testProfesor"]=serialize($testProfesor);


Gracias por tu interes.
  #5 (permalink)  
Antiguo 16/04/2007, 00:59
 
Fecha de Ingreso: septiembre-2006
Mensajes: 105
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Permanencia de objetos...

Bueno, mas facil todavía. ¿Alguien me puede enviar un ejemplo de código suyo mostrando como maneja los objetos o como les da permanencia?

Gracias.
  #6 (permalink)  
Antiguo 16/04/2007, 07:59
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
Re: Permanencia de objetos...

Pues es facil no se que problema tienes:
pagina1.php
Código PHP:
include( 'definicion/hacia/el/objeto.php' );
session_start();

$miObjeto = new objeto();
$_SESSION['miObjeto'] = $miObjeto;
header"Location: pagina2.php" ); 
Pagina2.php
Código PHP:
include( 'definicion/hacia/el/objeto.php' );
session_start();

$miObjeto $_SESSION['miObjeto'];
$miObjeto->hazAlgo(); 
  #7 (permalink)  
Antiguo 16/04/2007, 09:23
 
Fecha de Ingreso: septiembre-2006
Mensajes: 105
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta Re: Permanencia de objetos...

Entonces... ¿no utilizas "serialize" y "unserialize" para la permanencia de objetos?
  #8 (permalink)  
Antiguo 16/04/2007, 11:20
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
Re: Permanencia de objetos...

No es necesario, PHP automaticamente hace esos pasos por ti.
  #9 (permalink)  
Antiguo 16/04/2007, 11:21
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
Re: Permanencia de objetos...

y para comparar te recomiendo que uses el operador instanceof.

Salu2
  #10 (permalink)  
Antiguo 16/04/2007, 12:08
 
Fecha de Ingreso: septiembre-2006
Mensajes: 105
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Permanencia de objetos...

Para comparar el instance of. Ok. Esto... ¿un pequeño caso practico sobre eso ?
  #11 (permalink)  
Antiguo 16/04/2007, 15:07
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
Re: Permanencia de objetos...

Código PHP:
$miObjeto = new MiObjeto();
if( 
$miObjeto instanceof MiObjeto ) {
    echo 
$miObjeto->algo();
} else {
    echo 
'$miObjeto no es un objeto del tipo MiObjeto';

  #12 (permalink)  
Antiguo 17/04/2007, 00:46
 
Fecha de Ingreso: septiembre-2006
Mensajes: 105
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Permanencia de objetos...

¡Gracias, GatorV!

¡Me pongo a implementarlo ahora mismo!
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 07:36.