Sesión (Session)

Nota

Para todas las funciones Http, Ubiquity utiliza clases técnicas que contienen métodos estáticos. Se trata de una elección de diseño para evitar la inyección de dependencias que degradaría el rendimiento.

La clase USession proporciona funcionalidad adicional para manipular más fácilmente el array nativo $_SESSION php.

Inicio de sesión

La sesión Http se inicia automáticamente si se rellena la clave sessionName en el fichero de configuración app/config.php:

<?php
return array(
             ...
             "sessionName"=>"key-for-app",
             ...
 );

Si la clave sessionName no está rellenada, es necesario iniciar la sesión explícitamente para utilizarla:

use Ubiquity\utils\http\USession;
...
USession::start("key-for-app");

Nota

El parámetro nombre es opcional pero se recomienda para evitar variables conflictivas.

Crear o editar una variable de sesión

use Ubiquity\utils\http\USession;

USession::set("name","SMITH");
USession::set("activeUser",$user);

Recuperación de datos

El método get devuelve el valor null si la clave name no existe en las variables de sesión.

use Ubiquity\utils\http\USession;

$name=USession::get("name");

El método get puede ser llamado con el segundo parámetro opcional devolviendo un valor si la clave no existe en las variables de sesión.

$name=USession::get("page",1);

Nota

El método session es un alias del método get.

El método getAll devuelve todas las variables de sesión:

$sessionVars=USession::getAll();

Pruebas

El método exists comprueba la existencia de una variable en sesión.

if(USession::exists("name")){
     //do something when name key exists in session
}

El método isStarted comprueba el inicio de sesión

if(USession::isStarted()){
     //do something if the session is started
}

Borrar variables

El método delete elimina una variable de sesión:

USession::delete("name");

Cierre explícito de la sesión

El método terminar cierra la sesión correctamente y borra todas las variables de sesión creadas:

USession::terminate();