iranianpep/botonomous

View on GitHub
src/Botonomous/utility/SessionUtility.php

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
<?php

namespace Botonomous\utility;

/**
 * Class SessionUtility.
 *
 * @SuppressWarnings(PHPMD.Superglobals)
 * $_SESSION is wrapped in two functions and every session manipulation should use this call
 */
class SessionUtility
{
    /**
     * SessionUtility constructor.
     */
    public function __construct()
    {
        session_start();
    }

    /**
     * @return mixed
     */
    public function getSession(): array
    {
        return $_SESSION;
    }

    /**
     * @param mixed $session
     */
    public function setSession(array $session)
    {
        $_SESSION = $session;
    }

    /**
     * @param $key
     * @param $value
     */
    public function set(string $key, $value)
    {
        $session = $this->getSession();
        $session[$key] = $value;
        $this->setSession($session);
    }

    /**
     * @param $key
     *
     * @return mixed
     */
    public function get($key)
    {
        $session = $this->getSession();

        if (!isset($session[$key])) {
            /* @noinspection PhpInconsistentReturnPointsInspection */
            return;
        }

        return $session[$key];
    }
}