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.