PHP Classes

File: src/Session.php

Recommend this page to a friend!
  Classes of Thierry Feuzeu   Jaxon Armada   src/Session.php   Download  
File: src/Session.php
Role: Class source
Content type: text/plain
Description: Class source
Class: Jaxon Armada
Advanced features for Jaxon applications
Author: By
Last change: Update of src/Session.php
Date: 2 years ago
Size: 3,362 bytes
 

Contents

Class file image Download
<?php

namespace Jaxon\Armada;

class
Session
{
   
/**
     * The session manager implementation
     *
     * It is provided by the aura/session package https://packagist.org/packages/aura/session
     *
     * @var \Aura\Session\Session
     */
   
protected $xSession = null;

   
/**
     * The session manager implementation
     *
     * It is provided by the aura/session package https://packagist.org/packages/aura/session
     *
     * @var \Aura\Session\Session
     */
   
protected $xSegment = null;

   
/**
     * The constructor
     */
   
public function __construct()
    {
       
$xSessionFactory = new \Aura\Session\SessionFactory;
       
$this->xSession = $xSessionFactory->newInstance($_COOKIE);
       
$this->xSegment = $this->xSession->getSegment(get_class($this));
    }

   
/**
     * Get the current session id
     *
     * @return string The session id
     */
   
public function getId()
    {
        return
$this->xSession->getId();
    }

   
/**
     * Generate a new session id
     *
     * @param bool $bDeleteData Whether to delete data from the previous session
     *
     * @return void
     */
   
public function newId($bDeleteData = false)
    {
        if(
$bDeleteData)
        {
           
$this->clear();
        }
       
$this->xSession->regenerateId();
    }

   
/**
     * Start the session
     *
     * @return void
     */
   
public function start()
    {
       
$this->xSession->start();
    }

   
/**
     * Save data in the session
     *
     * @param string $sKey The session key
     * @param string $xValue The session value
     *
     * @return void
     */
   
public function set($sKey, $xValue)
    {
       
$this->xSegment->set($sKey, $xValue);
    }

   
/**
     * Check if a session key exists
     *
     * @param string $sKey The session key
     *
     * @return bool True if the session key exists, else false
     */
   
public function has($sKey)
    {
        return
key_exists($sKey, $_SESSION[get_class($this)]);
    }

   
/**
     * Get data from the session
     *
     * @param string $sKey The session key
     * @param string $xDefault The default value
     *
     * @return mixed|$xDefault The data under the session key, or the $xDefault parameter
     */
   
public function get($sKey, $xDefault = null)
    {
        return
$this->xSegment->get($sKey, $xDefault);
    }

   
/**
     * Get all data in the session
     *
     * @return array An array of all data in the session
     */
   
public function all()
    {
        return
$_SESSION[get_class($this)];
    }

   
/**
     * Delete a session key and its data
     *
     * @param string $sKey The session key
     *
     * @return void
     */
   
public function delete($sKey)
    {
        if(
$this->has($sKey))
        {
            unset(
$_SESSION[get_class($this)][$sKey]);
        }
    }

   
/**
     * Delete all data in the session
     *
     * @return void
     */
   
public function clear()
    {
       
$this->xSession->clear();
    }

   
/**
     * Delete all data in the session
     *
     * @return void
     */
   
public function destroy()
    {
       
$this->xSession->destroy();
    }
}