Pergunta

Vamos dizer que em meu aplicativo eu tenho uma instância de objeto criado na página 1. O usuário, em seguida, vai para alguma outra parte do aplicativo e quero que a instância de permanecer. Como posso 'salvar' o exemplo? Sessões?

Foi útil?

Solução

Sim, usar um sessão .

session_start () no início de sua página, em seguida, guardar o seu objeto com algo como $_SESSION['myobject']=$myobject;

O $_SESSION['myobject'] acesso página pode mais tarde depois que ele também chama session_start ()

Você precisa ter certeza de que qualquer página que usa essa sessão tem a classe para o objeto definido ou é capaz de auto-loading -lo.

A classe também pode definir os métodos mágicos __ sono e __ de despertar que permitem que você para limpar quaisquer variáveis ??de membro que você não quer serialização (como recursos, como alças db). Durante __wakeup você pode restaurar estes.

Outras dicas

Há duas maneiras que eu usei para minhas aplicações:. Sessões e banco de dados

Sessões sim, mas será uma nova instância com as mesmas propriedades e não o mesma instância. Outras opções são usando um O / R-Mapper para armazenar o objeto no banco de dados e manter a chave para ele na sessão, ou o uso memcached com uma chave única (dizer o ID da sessão) - mas isso ainda não seria o mesmo exemplo -. apenas uma instância com as mesmas propriedades

Se você precisar o exatamente o mesmo instância de um objeto entre dois pedidos em PHP Eu tenho medo que isso é impossível (não impossível , tudo é factível - mas você' terá que executar o PHP em cima de algum tipo de servidor de aplicação)

Você fundamentalmente tem duas opções:. estado do lado do servidor ou estado do lado do cliente

estado do lado do servidor é normalmente feito através de sessões. Esta é a solução mais simples e mais poderoso, mas tem alguns inconvenientes (simultaneidade, incapazes de persistir o estado ao longo do tempo, etc.).

estado do lado do cliente pode ser mantida através da URL - Normalmente em consulta parâmetros de cadeia. Por exemplo, para "lembrar" uma $name variável entre duas páginas, você pode criar um link na primeira página, como este: http://www.example.org/second_page.php?name=Jimbo, ea segunda página poderia então obter a variável através $_GET. Isto é muito mais difícil de acertar, e tem algumas limitações sobre o quanto estado, você pode transferir entre as páginas. Por esta razão, as pessoas têm uma tendência a ir com o estado do lado do servidor, mesmo quando o estado do lado do cliente seria mais apropriado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top