Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/06/2011, 17:36
nicostone
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 1 mes
Puntos: 1
Problemas ArrayObject Session

Hola como explicar lo que me esta pasando estoy utilizando por primera vez ArrayObject y se me ha presentado un problema que no puedo resolver y quizas sea configuracion o algo por el estilo porque ya no se que mas probar, les comento que en mi maquina tengo PHP Version 5.3.5 y en el servidor donde esta alojado el sitio tengo PHP Version 5.2.16 mi problema es el que segui y es que cuando quiero serializar un objeto de la Clase Colection tengo problemas en el servidor pero en mi PC funciona todo perfecto en el servidor las sessiones estan funcionando ya que tengo datos en sessiones como por ejemplo un objeto y si me funciona como deberia luego de serializar el objeto en la session y deserealizar la session en otra pagina .
Les dejo mi clase coleccion y como realizado la operacion.

Código PHP:
class Coleccion extends ArrayObject
{
     private 
$data;

     public function 
__construct()
     {
          
$this->data = new ArrayObject();
     }
     public function 
get($i)
     {
          return 
$this->data[$i];
     }
     public function 
append($object)
     {
          
$this->data->Append($object);
     }
     public function 
getIterator() {
        return 
$this->data->getIterator();
     }
     function 
count(){
         return 
$this->data->count();
     }
     public function 
addObject($object)
     {
          
$this->data->Append($object);
     }
     public function 
deleteObjectByPos($i){
         
$this->data->offsetUnset($i);
     }
     function 
returnAll(){
         return 
$this->data;
     }

seria algo asi en mi modelo tengo un metodo que es getClientes() en el cual consulto la base de datos y si hay cliente creo un objeto Coleccion
Código PHP:
$clientes = new Coleccion()
$res 'Contiene el resultado de la consulta a la BD que si contiene datos';
foreach(
$res as $row){
 
/* Creo el objeto cliente cargo las valores mediente los metodos setProvpedad($row['propiedad'})*/
 /* luego se puede dar el caso de que el cliente tenga pedidos realizados y cargo para el cliente una coleccion de pedidos */  
   
$pedidosDelCliente = new Coleccion();
   
/* voy comparando con una coleccion de pedidos previamente cargada  y si el pedido 'Actual' es del cliente se lo agrego a la nueva colleccion  $pedidosDelCliente */
  
$pedidosDelCliente->addObject($pedido);
 
/* luego cuando tengo todos los pedidos del cliente en $pedidosDelCliente realizo */
$cliente->setPedidos($pedidosDelCliente);
 
/* Luego agrego el cliente que contiene varios datos y una colleccion de pedidos a la coleccion cliente*/ 
$clientes->addObject($cliente);
}
/* Esto se realiza como sigue ya que el Perfil Operador solo puede consultar datos del cliente y los pedidos del mismo no puede actualizar nada*/
/* cuando salgo del foreach retorno la coleccion de cliente */ 
$_SESSION['Clientes'] = serialize($clientes);

/* Luego en otra pagina cuando deserealizo no me muestra nada y como en el servidor donde esta el sitio es donde no me funciona no puedo realizar un debug como para ver que contiene*/ 
$clientes unserialize($_SESSION['Clientes'] ); 
Bueno como les comente es muy raro que en mi PC me funcione a la perfeccion y en el servidor no ya que la version de php del servidor es reciente.

Espero que alguien me puede ayudar y desde ya muchas gracias.

Saludos

Nico.