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();