Ir ao conteúdo
  • Cadastre-se
eric123

Variaveis do Objeto PHP sao apagadas

Recommended Posts

Fala ai galera. Estou motando uma estrutura pra armazenar pedidos, porém funciona da seguinte forma...

Classe Pedido terá um array de de objetos do tipo Cartao e dentro de cada objeto Cartao terá um array de objetos do tipo Jogos. Mas algo entranho acontece quando vou exibila na minha pagina principal, os valroes vem como nulos,

 

Pedido

  '- $cartoes[x]

     '-$pedidos[j]

 

Segue abaixo classes e controller:

 

PedidoModel.php

<?phprequire_once 'Modelo/Entidade.php';require_once 'Modelo/CartaoModelo.php';class PedidoModelo extends Entidade{    private $cartoes;    private $valorTotal;    private $dataPedido;    private $statusPedido;     private $cont;           public function __construct($codigo = NULL, $cartoes = array(), $valorTotal = NULL, $dataPedido = NULL, $statusPedido = NULL, $cont = 0) {        parent::__construct($codigo);        $this->cartoes = $cartoes;        $this->valorTotal = $valorTotal;        $this->dataPedido = $dataPedido;        $this->statusPedido = $statusPedido;        $this->cont = $cont;            }        public function Destroi() {        parent::Destroi();        $this->cartoes=NULL;        $this->dataPedido=NULL;        $this->valorTotal = NULL;        $this->statusPedido = NULL;        $this->cont = NULL;    }        function addCartao($cartao = NULL){        $o_cartoes = $this->getCartoes();        if($cartao == NULL)            $o_cartao = new CartaoModelo();        else            $o_cartao = $cartao;        $this->setCartao($o_cartao);        $this->setCont($this->getCont()+1);    }        public function addJogo($jogo){        $o_cartoes = $this->cartoes;        $o_cartoes[$this->getCont()-1]->addJogo($jogo);    }        public function quantidadeJogosCartaoTotal($i){        $o_cartoes = $this->getCartoes();        $quantidadeTotal = $o_cartoes[$i]->quantidadeTotal();             return $quantidadeTotal;    }        public function quantidadeJogosCartoesTotal(){        $quantidadeTotal = 0;        $o_cartoes = $this->getCartoes();        $contador = $this->getCont();                for($cont=0; $contador>$cont; $cont++){           $quantidadeTotal += $o_cartoes[$cont]->quantidadeTotal();        }        return $quantidadeTotal;    }        public function valorJogosCartaoTotal($i){        $cartoes = $this->getCartoes();                $ValorTotal = $cartoes[$i]->valorTotal();                return $ValorTotal;    }        public function valorJogosCartoesTotal(){        $ValorTotal=0;        $contador = $this->getCont();        $cartoes = $this->getCartoes();        if(sizeof($cartoes)>0){            for($cont=0; $cont<$contador; $cont++){               $ValorTotal += $cartoes[$cont]->valorTotal();            }        }        return $ValorTotal;    }        public function getCartoes()    {        return $this->cartoes;    }    public function setCartao(CartaoModelo $o_cartao)    {        return $this->cartoes[$this->getCont()] = $o_cartao;    }    public function setCont($cont)    {        $this->cont= $cont;    }    public function getCont()    {        return $this->cont;    }        public function setValorTotal ($valorTotal)    {        $this->valorTotal= $valorTotal;    }        public function getValorTotal()    {        return $this->valorTotal;    }        public function setDataPedido ($dataPedido)    {        $this->dataPedido= $dataPedido;    }        public function getDataPedido()    {        return $this->dataPedido;    }        public function setStatusPedido ($statusPedido)    {        $this->statusPedido= $statusPedido;    }        public function getStatusPedido()    {        return $this->statusPedido;    }    }

 

CartaoModel.php

<?phprequire_once 'Modelo/Entidade.php';require_once 'Modelo/JogosModelo.php';class CartaoModelo extends Entidade{    //Variaveis    private $jogos; //Tipo do funcionario (1-> Admin; 2-> Funcionario comum)    private $cont;        function __construct($codigo=null , $jogos=array(), $cont=0) {              parent::__construct($codigo);        $this->jogos=$jogos;        $this->cont=$cont;    }        function Destroi() {        parent::Destroi();        $this->jogos=NULL;        $this->cont=NULL;    }    public function addJogo($jogo){        $this->jogos[$this->getCont()]= $jogo;        $this->setCont($this->getCont()+1);    }        function removeJogo($cont){        //Caso seja o ultimo que foi empilhado,        if($cont!=0 && $cont == $this->getCont()-1){            $this->jogos[$cont]->Destroi();            $this->setCont($this->getCont()-1);        }        //Caso tenha somente um jogo inserido, retira o(s) jogo(s) e limpa carrinho        else if($cont == 0 && $this->getCont()==1){            $this->jogos[$cont]->Destroi();            $this->jogos = array();            $this->setCont(0);        }        else{            for($i=$cont; $i < $this->getCont()-1; $i++){                $this->$jogos[$i] = $this->$jogos[$i+1];            }            $this->setCont($this->getCont()-1);        }            }        public function quantidadeTotal(){        $quantidadeTotal=0;        $jogos = $this->getJogos();        if(sizeof($jogos)>0){            for($cont=0; $this->getCont()>$cont; $cont++){               $quantidadeTotal += $jogos[$cont]->getQuantidade();            }        }        return $quantidadeTotal;    }    public function valorTotal(){        $ValorTotal=0;        $jogos = $this->getJogos();        if(sizeof($jogos)>0){            for($cont=0; $this->getCont()>$cont; $cont++){               $ValorTotal += $jogos[$cont]->getValor();            }        }        return $ValorTotal;    }        public function getJogos() {        return $this->jogos;    }        public function getCont() {        return $this->cont;    }    public function setCont($cont) {        $this->cont = $cont;    }}


JogosModel.php

<?phprequire_once 'Modelo/Entidade.php';class JogosModelo extends Entidade {    protected $primeiraSelecao;    protected $segundaSelecao;    protected $local;    protected $data;    protected $hora;    protected $quantidade;    protected $disponivel; //boolean para ver se o jogo está disponivel    protected $valor;        public function _construct ($codigo = null, $primeiraSelecao = null, $segundaSelecao = null, $local = null, $data = null, $hora = null, $quantidade=null, $disponivel = null, $valor=null)    {        parent::__construct($codigo);        $this->primeiraSelecao = $primeiraSelecao;        $this->segundaSelecao = $segundaSelecao;        $this->local = $local;        $this->data = $data;        $this->hora = $hora;        $this->quantidade = $quantidade;        $this->disponivel = $disponivel;        $this->valor = $valor;    }        public function __destruct() {        parent::Destroi();        $this->primeiraSelecao = NULL;        $this->segundaSelecao = NULL;        $this->local = NULL;        $this->data = NULL;        $this->hora = NULL;        $this->quantidade = NULL;        $this->disponivel = NULL;    }         public function setPrimeiraSelecao($primeiraSelecao)    {        $this->primeiraSelecao= $primeiraSelecao;    }        public function getPrimeiraSelecao()    {        return $this->primeiraSelecao;    }     public function setSegundaSelecao ($segundaSelecao)    {        $this->segundaSelecao= $segundaSelecao;    }        public function getSegundaSelecao()    {        return $this->segundaSelecao;    }     public function setLocal ($local)    {        $this->local= $local;    }        public function getLocal()    {        return $this->local;    }        public function setData ($data)    {        $this->data= $data;    }        public function getData()    {        return $this->data;    }        public function setHora ($hora)    {        $this->hora= $hora;    }        public function getHora()    {        return $this->hora;    }    public function setDisponivel($disponivel)    {        $this->disponivel= $disponivel;    }        public function getDisponivel()    {        return $this->disponivel;    }     public function setValor($valor){        $this->valor = $valor;    }    public function getValor(){        return $this->valor;    }        public function setQuantidade($quantidade){        $this->quantidade = $quantidade;    }    public function getQuantidade(){        return $this->quantidade;    }}   

Arquivo controller para criar o objeto (debuguei na propria pagina e os valores aparecerem). Confeço que nao estou fazendo da forma mais correta, estou utilizando SESSION para armazenar o objeto Pedido.

PedidoController.php

class PedidoControle {        public function addJogoAction(){        session_start();        $o_jogos = new JogosModelo();        $o_repositorioJogos = new RepositorioJogos();        $codJogo = $_GET['codJogo'];        $o_jogo = $o_repositorioJogos->consultar($codJogo);        $o_jogo->setQuantidade($_POST['quantidadeJogo']);                if(!isset($_SESSION["o_pedido"])){            $o_pedido02 = new PedidoModelo();            $o_pedido02->addCartao();            $o_pedido02->addJogo($o_jogo);            $_SESSION["o_pedido"] = $o_pedido02;            Application::redirect("?controle=Principal&acao=inicial&p=SelecionaTipoJogo&p2=".$_GET['p2']."&rodada=".$_GET['rodada']."&A=SESSION_N_EXISTE");        }        else{            $o_pedido02 = $_SESSION["o_pedido"];            if($o_pedido02->quantidadeJogosCartaoTotal($o_pedido02->getCont()-1)<6){                $o_pedido02->addJogo($o_jogo);                $_SESSION["o_pedido"] = $o_pedido02;                Application::redirect("?controle=Principal&acao=inicial&p=SelecionaTipoJogo&p2=".$_GET['p2']."&rodada=".$_GET['rodada']."&A=SESSION_EXISTE");            }            else{                Application::redirect("?controle=Principal&acao=inicial&p=SelecionaTipoJogo&p2=".$_GET['p2']."&rodada=".$_GET['rodada']);            }        }    }   }

Por eu estar guardando tudo num $_SESSION será que não está aguentando tamanha demanda de dados? (isso acontece até mesmo com um registro no objeto)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×