Phalcon - Gerenciamento de Sessão
As sessões são armazenamento de informações do lado do servidor que ajuda na interação do usuário com o site ou aplicativo da web. Cada sessão é definida exclusivamente com um ID de sessão, que é passado ao servidor da web sempre que o navegador faz uma solicitação HTTP. O ID da sessão é sempre emparelhado com o banco de dados interno, de forma que todas as variáveis armazenadas sejam recuperadas.
Sessões em Phalcon
O Phalcon usa componentes de sessão que incluem os wrappers para acessar os dados da sessão.
A seguir estão os recursos do Phalcon -
Os dados da sessão podem ser isolados de outros componentes no mesmo domínio.
De acordo com as necessidades do aplicativo, o valor da sessão pode ser alterado com a ajuda do adaptador de sessão.
Iniciando uma Sessão no Phalcon
Todas as atividades da sessão estão associadas aos arquivos do adaptador que são declarados em Services.php arquivo dentro do /config pasta do aplicativo da web.
/**
* Start the session the first time some component requests the session service
*/
$di->setShared('session', function () {
$session = new SessionAdapter();
$session->start();
return $session;
});
Criando uma Sessão
Step 1 - Crie um controlador de sessão para instanciar uma sessão de forma que os dados possam ser recuperados apropriadamente.
Step 2 - Crie uma sessão com um nome e valor.
<?php
class SessionController extends \Phalcon\Mvc\Controller {
public function indexAction() {
//Define a session variable
$this->session->set("user-name", "Omkar");
//Check if the variable is defined
if ($this->session->has("user-name")) {
//Retrieve its value
$name = $this->session->get("user-name");
echo($name);
}
}
}
O código acima produz a seguinte saída.
Removendo uma Sessão
É possível destruir a sessão ou remover a configuração de alguns valores de variáveis dentro da sessão no Phalcon.
A seguir está a sintaxe para cancelar a definição dos valores das variáveis na sessão.
$this->session->remove(<variable-name>);
Conforme mostrado no exemplo acima, o nome da variável criada na sessão é “data-content” que pode ser removido usando o código a seguir.
public function removeAction() {
// Remove a session variable with associated session
$this->session->remove("data-content");
}
;
A seguir está a sintaxe para destruir a sessão completa.
$this->session->destroy();