Phalcon - Gestión de sesiones

Las sesiones son almacenamiento de información del lado del servidor que ayuda en la interacción del usuario con el sitio web o la aplicación web. Cada sesión se define de forma única con un ID de sesión, que se pasa al servidor web cada vez que el navegador realiza una solicitud HTTP. El ID de sesión se empareja cada vez con la base de datos interna de modo que se recuperan todas las variables almacenadas.

Sesiones en Phalcon

Phalcon utiliza componentes de sesión que incluyen envoltorios para acceder a los datos de la sesión.

Las siguientes son las características de Phalcon:

  • Los datos de la sesión se pueden aislar de otros componentes del mismo dominio.

  • Según las necesidades de la aplicación, el valor de la sesión se puede cambiar con la ayuda del adaptador de sesión.

Iniciar una sesión en Phalcon

Todas las actividades de la sesión están asociadas con los archivos del adaptador que se declaran en Services.php archivo dentro del /config carpeta de la aplicación web.

/** 
   * Start the session the first time some component requests the session service 
*/ 
$di->setShared('session', function () { 
   $session = new SessionAdapter(); 
   $session->start();  
   return $session; 
});

Crear una sesión

Step 1 - Cree un controlador de sesión para instanciar una sesión, de modo que los datos se puedan recuperar de forma adecuada.

Step 2 - Crear una sesión con nombre y 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); 
      } 
   } 
}

El código anterior produce la siguiente salida.

Eliminar una sesión

Es posible destruir la sesión o desarmar algunos valores variables dentro de la sesión en Phalcon.

A continuación se muestra la sintaxis para desarmar los valores de las variables en la sesión.

$this->session->remove(<variable-name>);

Como se muestra en el ejemplo anterior, el nombre de variable creado en la sesión es “data-content” que se puede eliminar con el siguiente código.

public function removeAction() { 
   // Remove a session variable with associated session 
   $this->session->remove("data-content"); 
}
;

A continuación se muestra la sintaxis para destruir la sesión completa.

$this->session->destroy();