Foros del Web » Programando para Internet » PHP »

Clase estatica y sessiones

Estas en el tema de Clase estatica y sessiones en el foro de PHP en Foros del Web. Hola, estoy trabajando en un carrito de compra guardado en un arreglo que se guarda en una session, para esto he creado una clase estatica ...
  #1 (permalink)  
Antiguo 18/11/2012, 23:24
 
Fecha de Ingreso: abril-2008
Mensajes: 316
Antigüedad: 16 años
Puntos: 3
Clase estatica y sessiones

Hola, estoy trabajando en un carrito de compra guardado en un arreglo que se guarda en una session, para esto he creado una clase estatica con funciones como agregar, eliminar, etc, una vez confirmado el carrito lo guardare en la base de datos pero mientra lo mantendre en una session, mi pregunta son dos, que tan buena idea es guardar el carrito en la session.

2.- La forma en la que quiero interactuar con el carrito en base a la clase es asi:

Carrito::agregarProducto(4);
Carrito::agregarProducto(7);

la cosa es que si no guardo el carrito en la session este no perciste, por lo que quiero, por lo que hice una funcion estatica asi:

Carrito::inicializarCarrito();

que unicamente regresa un carrito inicializado en vacio por decirlo asi en caso de no existir la session y si existe regresa el carrito de session, lo que me quiero ahorra es tener que llamar a esta funcion en todas mis funciones o cada vez que quiera interactuar con el, por lo que quiero saber si existe alguna forma de llamar la funcion implicitamente dentro de la clase, por ejemplo:

Carrito::agregarProducto(3);

Antes de que sea llamada la funcion agregarProducto quiero llamar ala funcion inicializarCarrito();

Hay algun comando que sirva para eso: _load, _construct o de esas, recuerden que mi clase es una clase normal con puras funciones estaticas??
  #2 (permalink)  
Antiguo 18/11/2012, 23:37
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 137
Respuesta: Clase estatica y sessiones

para qué estáticas?? Y porque no lo guardas en una base de datos y respecto a lo ejecutar una funcion antes pues puedes hacer algo como
Código PHP:
Ver original
  1. public static function agregarProducto($params){
  2.     if(// alguna condicion para ver si se inicializo//){
  3.         self::inicializarCarrito();
  4.     }
  5.     // demás código del metodo
  6. }
  #3 (permalink)  
Antiguo 18/11/2012, 23:52
 
Fecha de Ingreso: abril-2008
Mensajes: 316
Antigüedad: 16 años
Puntos: 3
Respuesta: Clase estatica y sessiones

Son estaticas por que no le veo caso a instanciar el carrito con new, ademas no lo quiero guardar en la base de datos si no hasta que el usuario haya terminado de agregar todos sus productos, lo que me comentas de:

public static function agregarProducto($params){
if(// alguna condicion para ver si se inicializo//){
self::inicializarCarrito();
}
// demás código del metodo
}

Ya lo habia pensado pero recuerda que tengo varias funciones y tendria que llamar a: self::inicializarCarrito(); en cada una de ellas, en el ultimo de los casos talves asi lo haga pero quiero ver si hay algo mas automatico como un _contruct para clases estaticas, estaba invetigando y encontre esto http://stackoverflow.com/questions/3...ss-initializer

parecido a lo que quiero, esperare para ver otras respuestas, muchas gracias por la ayuda.
  #4 (permalink)  
Antiguo 19/11/2012, 00:08
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 137
Respuesta: Clase estatica y sessiones

Pues si, con singleton quedaria mejor eso que planteas, y asi pero aun asi antes de usar un metodo harias algo como
Código PHP:
Ver original
  1. <?php
  2. $carro = Carrito::getInstance();
  3. $carro->agregarProducto();
y asi no creas una nueva instancia cada vez.
Pero eso que dices de ejecutar algo antes de cada método creo que no existe, siempre eh visto que se usa eso que te digo, ejecutar algo al inicio del metodo.
Saludos
  #5 (permalink)  
Antiguo 19/11/2012, 00:15
 
Fecha de Ingreso: abril-2008
Mensajes: 316
Antigüedad: 16 años
Puntos: 3
Respuesta: Clase estatica y sessiones

Mucha gracias por responder, estube viendo ejemplos y trabajan directamente con la session, asi lo hare tambien,

if(isset($_SESSION['carro'][$id]))
$_SESSION['carro'][$id]++;
else
$_SESSION['carro'][$id]=1;



Verifican que la session exista si no la inicializan en su valor por deafault, lo probare haber que tal.

Etiquetas: clase, estatica, sesiones
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:29.