Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
Alguém sabe como utilizar uma variável PHP de forma realmente universal, sem ser apenas global, ou seja, que ela possa ser consultada e alterada por scripts independentes, em requisições independentes e que também possa ser utilizada por usuários diferentes mas que não seja gravando em arquivos, que fique apenas na memória?
Poderia até ser uma $_SESSION mas eu não consigo fazer com que os usuários acessem a mesma $_SESSION.
Alguma luz?
$_ENV
???
>
$_ENV
???
Prog,
A $_ENV não serviria pois ela só dura na sessão em que foi criada. Outros usuários em outras requisições não verão.
Deixa eu ver se entendi, você que cria uma sistema com $_SESSION para apenas membros "autorizados" acessar tal área?
Whiksw,
Não, que todos possam consultar, sem restrições. Por exemplo, uma variável que possa receber a resposta de uma consulta ao banco e disponibilizar para todas as requisições, para que cada requisição de usuários distintos não precise consultá-la novamente, sem restrições.
se puder explicar a finalidade talvez possamos auxiliar ..
o que posso imaginar é salvar essa info num arquvo estático, um simples txt... mas como vc deixou claro que quer evitar essa forma, então o que poderia ser ?
não poderia guardar no banco de dados ?..
pense quando precisar expandir o sistema, um simples loadbalance já daria problemas pois a memória de um server não seria compartilhada com o espelho.
se armazenar num banco de dados poderá usar mirrors sem problema de perda de sessão.
Como você esta programando amigo? Se for OO você pode fazer algo do tipo:
public class Util{
private static instance;
private static variavelGlobal;
private function __construct(){}
public function getInstance(){
if($this->instance==NULL)
$this->instance = new Util();
return $this->instance;
}
public function getVariavelGlobal(){
return $this->variavelGlobal;
}
public function setVariavelGlobal($valor){
$this->variavelGlobal = $valor;
}
}
Ai quando quiser manipular a variável fassa isso:
$util = Util::getInstance(); //recupera a instancia de Util, sempre que quiser usar
//a variável em arquivos diferentes você deverá utilizar
//essa linha
$foo = $util->getVariavelGlobal(); //recupera o valor atual da variável
$util->setVariavelGlobal("blablabla"); //atribui um novo valor a variável
P.s.: Lembrando que dessa forma o dado fica salvo em memória só, o que significa que se o servidor reiniciar o valor da variável vai pro saco, então, o bom seria persisti-lo em algum lugar.
>
se puder explicar a finalidade talvez possamos auxiliar ..
o que posso imaginar é salvar essa info num arquvo estático, um simples txt... mas como você deixou claro que quer evitar essa forma, então o que poderia ser ?
não poderia guardar no banco de dados ?..
pense quando precisar expandir o sistema, um simples loadbalance já daria problemas pois a memória de um server não seria compartilhada com o espelho.
se armazenar num banco de dados poderá usar mirrors sem problema de perda de sessão.
hinom,
Realmente não achei nada que pudesse me ajudar, o jeito vai ser gravar em arquivos, eu criei uma class bem legal que administra isso, até agora é o máximo de desempenho que consegui. Obrigado.
>
Como você esta programando amigo? Se for OO você pode fazer algo do tipo:
public class Util{
private static instance;
private static variavelGlobal;
private function __construct(){}
public function getInstance(){
if($this->instance==NULL)
$this->instance = new Util();
return $this->instance;
}
public function getVariavelGlobal(){
return $this->variavelGlobal;
}
public function setVariavelGlobal($valor){
$this->variavelGlobal = $valor;
}
}
Ai quando quiser manipular a variável fassa isso:
$util = Util::getInstance(); //recupera a instancia de Util, sempre que quiser usar
//a variável em arquivos diferentes você deverá utilizar
//essa linha
$foo = $util->getVariavelGlobal(); //recupera o valor atual da variável
$util->setVariavelGlobal("blablabla"); //atribui um novo valor a variável
P.s.: Lembrando que dessa forma o dado fica salvo em memória só, o que significa que se o servidor reiniciar o valor da variável vai pro saco, então, o bom seria persisti-lo em algum lugar.
kyosuke,
Essa class não funcionaria pra mim. Obrigado por tentar ajudar.
Deixa eu ver se entendi, você que cria uma sistema com $_SESSION para apenas membros "autorizados" acessar tal área?