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

Arreglo de objetos en sesion

Estas en el tema de Arreglo de objetos en sesion en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Tengo un objeto en sesion, en este caso es el objeto 'Persona' y este objeto cuenta con una propiedad 'listaIdiomas' que es un array la ...
  #1 (permalink)  
Antiguo 23/09/2008, 20:58
 
Fecha de Ingreso: julio-2008
Mensajes: 35
Antigüedad: 15 años, 9 meses
Puntos: 1
Arreglo de objetos en sesion

Tengo un objeto en sesion, en este caso es el objeto 'Persona' y este objeto cuenta con una propiedad 'listaIdiomas' que es un array la cual va guardando objetos del tipo 'Idioma', para pasar el valor del objeto persona a la sesion aplico serialize, para no perder sus metodos,y para retraerlo aplico unserialize.

Todo de maravilla y asigno los valores correspondientes, y con var_dump miro todas las propiedades de mi objeto, en este caso miro listaIdiomas que es mi array de objetos de tipo 'Idioma', pero el problema es cuando trato de accesar directamente a la propiedad 'listaIdiomas' aqui me aparece en null

en fin, aqui dejo el codigo :


Código PHP:
//Aqui esta para asignar el objeto a la sesion

static public function setObject($Obj,$nombre){            
if (
is_object($Obj))
{
    if (isset(
$_SESSION[$nombre]))
    
session_unregister($nombre);
    
session_register($nombre);
    
$contenido=gzcompress(base64_encode(serialize($Obj)),9);                
     
$_SESSION[$nombre]=$contenido;
       return 
true;
}
            
else
return 
false;
                        
}
.................................

//Aqui esta para obtener el objeto que estasesion

static public function getObject($nombre){
  if (isset(
$_SESSION[$nombre]))
   {
   
$contenido=unserialize(base64_decode(gzuncompress($_SESSION[$nombre])));
    if (
is_object($contenido))
       return 
$contenido;
         else
           return 
false;
                
              }
                
            
      else 
         return 
false;                                                
}
........................

//Aqui esta la clase Persona que alberga la propiedad listaIdioma que es mi array y el objeto Idioma 

include 'classes/Idioma.php';
class 
Persona
{
    public 
$datosPersonales;
    public 
$datosEconomicos;
    public 
$datosFamiliares;
    public 
$datosGenerales;
    public 
$otrosDatos;
    public 
$documentacion;
    public 
$saludHabitos;
    public 
$educacion;
    public 
$idioma
    public 
$listaIdiomas;


//metodo asignarIdioma

public function asignaIdioma(Idioma $obj)
{
$this->listaIdiomas[]=clone($obj);
}

}



//cuando en mi modelo quiero retraer los datos para trabajar con ellos de esta manera:

$persona=Sesion::getObject('persona');
listarObjeto($persona)


//en el metodo

public function listarObjeto($obj)
{
//aqui trato de imprimir  pero no me arroja nada

print_r($obj->listaIdiomas);//----------->Arroja NULL

//pero si imprimo lo siguiente

print_r($obj);//----------->Si me imprime todo el objeto persona




Quisiera saber por que no me puede traer la propiedad "listaIdiomas" de persona que es un array de objetos de tipo "Idioma" que esta en sesion


Muchas Gracias de Antemano
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 02:44.