Overview

Namespaces

  • Baguette
    • Application
    • Response
    • Serializer
    • Session
  • Overview
  • Namespace
  • Class
  1:   2:   3:   4:   5:   6:   7:   8:   9:  10:  11:  12:  13:  14:  15:  16:  17:  18:  19:  20:  21:  22:  23:  24:  25:  26:  27:  28:  29:  30:  31:  32:  33:  34:  35:  36:  37:  38:  39:  40:  41:  42:  43:  44:  45:  46:  47:  48:  49:  50:  51:  52:  53:  54:  55:  56:  57:  58:  59:  60:  61:  62:  63:  64:  65:  66:  67:  68:  69:  70:  71:  72:  73:  74:  75:  76:  77:  78:  79:  80:  81:  82:  83:  84:  85:  86:  87:  88:  89:  90:  91:  92:  93:  94:  95:  96:  97:  98:  99: 100: 101: 102: 103: 104: 105: 106: 
<?php

namespace Baguette\Session;

/**
 * Session class based on PHP
 *
 * @author    USAMI Kenta <tadsan@zonu.me>
 * @copyright 2016 Baguette HQ
 * @license   http://www.apache.org/licenses/LICENSE-2.0 Apache-2.0
 * @link      http://php.net/manual/book.session.php
 */
class PhpSession implements SessionInterface
{
    public function __construct(array $options = [])
    {
        if (isset($options['name'])) {
            session_name($options['name']);
        }
    }

    /**
     * @return bool
     */
    public function start()
    {
        return session_start();
    }

    /**
     * @return string id
     * @link   http://php.net/manual/function.session-id.php
     */
    public function id($id = null)
    {
        if ($id === null) {
            return session_id();
        }

        return session_id($id);
    }

    /**
     * @param  bool $delete_old_session
     * @return bool
     * @link   http://php.net/manual/function.session-regenerate-id.php
     */
    public function regenerateId($delete_old_session = false)
    {
        return session_regenerate_id($delete_old_session);
    }

    /**
     * @param  string $name
     * @param  array  $options
     * @return mixed  $value
     */
    public function get($name, array $options = [])
    {
        if (array_key_exists($name, $_SESSION)) { return $_SESSION[$name]; }
        if (array_key_exists('default', $options)) { return $options['default']; }

        throw new \OutOfRangeException($name);
    }

    /**
     * @return array
     */
    public function getAll()
    {
        return $_SESSION;
    }

    /**
     * @param string $name
     * @param mixed  $value
     */
    public function set($name, $value)
    {
        $_SESSION[$name] = $value;
    }

    /**
     * @param string $name
     * @return string
     */
    public function name($name = null)
    {
        if ($name !== null) {
            return session_name($name);
        }

        return session_name();
    }

    /**
     * @return bool
     */
    public function destroy()
    {
        $_SESSION = [];

        return session_destroy();
    }
}
ξ ^ω^)ξ < Baguette Not Framework API documentation generated by ApiGen