Foros del Web » Programando para Internet » PHP »

Problemas ArrayObject Session

Estas en el tema de Problemas ArrayObject Session en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/06/2011, 17:36
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 8 meses
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.
  #2 (permalink)  
Antiguo 17/06/2011, 19:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Problemas ArrayObject Session

Tienes varias cosas que mejorar. Una de ella es si estás extendiendo, no hay necesidad de llamar métodos que ya están declarados en la clase padre, como por ejemplo append, getIterator, etc., etc. En realidad, no veo necesidad de extender, si todo lo que haces es usar la clase padre. Entiendo que la mejor forma es usar la clase padre, a menos que hagas algo que no esté en la clase padre. ¿Por qué no usas directamente la clase ArrayObject?

Trata usar directamente la clase en los servidores directamente.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 17/06/2011, 20:25
 
Fecha de Ingreso: marzo-2009
Mensajes: 76
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Problemas ArrayObject Session

Mil gracias por tu respuesta abimaelrc, la verdad que tienes toda la razón!! sobrescribo métodos de manera innecesaria, es verdad que tenia algunos métodos que realizaban otras cosas pero realice una prueba rápida y ahí esta el problema sin extender funciona perfecto en los dos lados y extendiendo funciona bien en mi PC y mal en el servido.

La verdad no sabes cuanto te agradezco.... muchísimas gracias de nuevos.

Saludos.



NicoStone.

Etiquetas: session
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 22:30.