* @package Vhs * @subpackage ViewHelpers\Once */ class SessionViewHelper extends AbstractOnceViewHelper { /** * @return string */ public function render() { if ('' === session_id()) { session_start(); } return parent::render(); } /** * @return void */ protected function storeIdentifier() { $identifier = $this->getIdentifier(); $index = get_class($this); if (FALSE === is_array($_SESSION[$index])) { $_SESSION[$index] = array(); } $_SESSION[$index][$identifier] = time(); } /** * @return boolean */ protected function assertShouldSkip() { $identifier = $this->getIdentifier(); $index = get_class($this); return (boolean) (TRUE === isset($_SESSION[$index][$identifier])); } /** * @return void */ protected function removeIfExpired() { $identifier = $this->getIdentifier(); $index = get_class($this); $existsInSession = (boolean) (TRUE === isset($_SESSION[$index]) && TRUE === isset($_SESSION[$index][$identifier])); if (TRUE === $existsInSession && time() - $this->arguments['ttl'] >= $_SESSION[$index][$identifier]) { unset($_SESSION[$index][$identifier]); } } }