Session

Session je statická třída určená pro práci se session. Má několik základních metod:

  • read($key, $default = null)
  • safeRead($key, $default = null)
  • write($key, $value)
  • exists($key)
  • delete($key)

Třída automaticky nastartuje session. Není tedy nikde nutné volat něco dopředu. Potřebuji číst, použiji metodu read, atp. Je tu ale jedan metoda, která nemusí mít zřejmou funkci. Jedná se o safeRead(). Tato metoda funguje stejně jako read(), akorát s tím rozdílem, že pokud session není nastartovaná, tak ji ani nenastartuje a vrátí null.

# zapiseme
session::write('my-key', array('my', 'values'));

# precteme
$var = session::read('my-key');
$var = session::read('not-compulsary-value', 'default value');

# overime a smazeme
if (session::exists('my-key'))
    session::delete('my-key');

Jmenné prostory

Od verze 0.9 disponuje framework rozšířenou třídou, která zavádí do session jmenné prostory a umožňuje správu jejich expirace, včetně expirace jednotlivých proměnných.

Instanci objektu získáte pomocí metody getNamespace.

$session = Session::getNamespace('frontend');

$session->var = 'value';
$session->set('var', 'value'); # alternativně
$session->set('var', 'value', 60); # alternativně s expirací 60 sekund);


echo $session->var;
echo $session->get('var'); # alternativně
echo $session->get('var', 'default'); # alternativně s defaultní hodnotou


unset($session->var);
$session->delete('var'); # alternativně


if (isset($session->var))
if ($session->exists('var')) # alternativně

Čas expirace pro samotný jmenný prostor nastavíte pomocí metody setExpiration.

$session->setExpiration(60); # 60 sekund
$session->setExpiration('+2 days');

# vypnutí expirace
$session->setExpiration(null);