Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

visitante_php

[Resolvido] registro nao registrando...

Recommended Posts

estou criando um framework, e invez de usar session, resolvi usarregistry pattern....so q eh um arquivo a class funciona otima, ondedeveria retorna vazio....

 

<?php
//akifunciona otima....num arquivo separado de testes, por convensao doautoload o nome da classe foi trocado, mas o codigo eh o mesmo....
class Registro
{
   private static $instance = NULL;

   private $registry = array();

   private function __construct()
   {}

   private function __clone()
   {}

   public static function getRegistry()
   {
       if( self::$instance === NULL )
       {
           self::$instance = new Registro;
       }
       return self::$instance;
   }

   public function __set($var,$value)
   {
       $this->registry[$var] = $value;
   }

   public function __get($var)
   {
       return $this->registry[$var];
   }
}


$a = Registro::getRegistry();
$a->mensagem = 'ola';
$b = Registro::getRegistry();
$b->message = 'ola2';
echo '<pre>';
var_dump($a);
echo '</pre>';
echo '<pre>';
var_dump($B);
echo '</pre>';

 

 

 

aki, no segundo metodo do principal, page2, ele retorna vazio....

 

<?php

class Principal extends SYSTEM_Controller
{
   private $registro;
   public function Index()
   {
       $this->_view->Assign('message', 'bem vindo a página inicial');
       $this->registro = SYSTEM_Registry::getRegistry();

       $this->_registry->mensagem = 'mensagem do registro';
       $this->registro->mensagem = 'pagina um do registro';
       echo '<pre>';
       var_dump($this->registro);
       echo '</pre>';
       $this->_view->setJS('jquery');
       $this->_view->Display('templatehome');
   }

   public function page2()
   {
       $this->_view->Assign('message', 'bem vindo a página 2');
       $this->registro = SYSTEM_Registry::getRegistry();
       echo $this->registro->mensagem;
       //echo $this->_registry->mensagem;
       echo '<pre>';
       var_dump($this->registro);
       echo '</pre>';
       //$this->_view->Assign('registro', $mensagem );
       $this->_view->setJS('alert');
       $this->_view->Display('templatehome');
   }
}

 

 

e aki eh a classe de registro usada

 

<?php

class SYSTEM_Registry
{
   private static $instance = NULL;

   private $registry = array();

   private function __construct()
   {}

   private function __clone()
   {}

   public static function getRegistry()
   {
       if( self::$instance === NULL )
       {
           self::$instance = new SYSTEM_Registry;
       }
       return self::$instance;
   }

   public function __set($var,$value)
   {
       $this->registry[$var] = $value;
   }

   public function __get($var)
   {
       return $this->registry[$var];
   }
}

 

tanto q podem ver q nos metodos ha 2 variaveis q usam o registro, o _registry e o registro, a segunda anula a primeira, mas nao passa os valores para o segundo metodo, o page2

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.