Retroceder   Foros del Web > Programación para sitios web > PHP > PHP orientado a objetos

Respuesta
 
Herramientas Desplegado
Antiguo 12-abr-2007, 10:20   #1 (permalink)
Lucha ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2006
Mensajes: 90
Cool 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.
Lucha está desconectado   Responder Citando
Antiguo 12-abr-2007, 10:31   #2 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 12.832
Re: Permanencia de objetos... chungo, chungo...

Puedes poner el codigo de como estas enviando los objetos?
GatorV está desconectado   Responder Citando
Antiguo 12-abr-2007, 10:32   #3 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 12.832
Re: Permanencia de objetos... chungo, chungo...

y el codigo de como lo recibes?
GatorV está desconectado   Responder Citando
Antiguo 12-abr-2007, 11:49   #4 (permalink)
Lucha ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2006
Mensajes: 90
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.
Lucha está desconectado   Responder Citando
Antiguo 16-abr-2007, 00:59   #5 (permalink)
Lucha ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2006
Mensajes: 90
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.
Lucha está desconectado   Responder Citando
Antiguo 16-abr-2007, 07:59   #6 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 12.832
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(); 
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 16-abr-2007, 09:23   #7 (permalink)
Lucha ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2006
Mensajes: 90
Pregunta Re: Permanencia de objetos...

Entonces... ¿no utilizas "serialize" y "unserialize" para la permanencia de objetos?
Lucha está desconectado   Responder Citando
Antiguo 16-abr-2007, 11:20   #8 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 12.832
Re: Permanencia de objetos...

No es necesario, PHP automaticamente hace esos pasos por ti.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 16-abr-2007, 11:21   #9 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 12.832
Re: Permanencia de objetos...

y para comparar te recomiendo que uses el operador instanceof.

Salu2
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 16-abr-2007, 12:08   #10 (permalink)
Lucha ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2006
Mensajes: 90
Alegría Re: Permanencia de objetos...

Para comparar el instance of. Ok. Esto... ¿un pequeño caso practico sobre eso ?
Lucha está desconectado   Responder Citando
Antiguo 16-abr-2007, 15:07   #11 (permalink)
$this->role('moderador');
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ags/
Mensajes: 12.832
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';

__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 17-abr-2007, 00:46   #12 (permalink)
Lucha ha deshabilitado el karma
 
Fecha de Ingreso: septiembre-2006
Mensajes: 90
Alegría Re: Permanencia de objetos...

¡Gracias, GatorV!

¡Me pongo a implementarlo ahora mismo!
Lucha está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 23:25.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93