diff --git a/classes/LocaleManager.php b/classes/LocaleManager.php index af714ba..c2bbc14 100644 --- a/classes/LocaleManager.php +++ b/classes/LocaleManager.php @@ -6,7 +6,6 @@ namespace Alltube; use Aura\Session\Segment; -use Aura\Session\SessionFactory; use Symfony\Component\Process\Process; /** @@ -37,13 +36,10 @@ class LocaleManager /** * LocaleManager constructor. - * - * @param array $cookies Cookie array */ - public function __construct(array $cookies = []) + public function __construct() { - $session_factory = new SessionFactory(); - $session = $session_factory->newInstance($cookies); + $session = SessionManager::getSession(); $this->sessionSegment = $session->getSegment(self::class); $cookieLocale = $this->sessionSegment->get('locale'); if (isset($cookieLocale)) { diff --git a/classes/SessionManager.php b/classes/SessionManager.php new file mode 100644 index 0000000..b461fa3 --- /dev/null +++ b/classes/SessionManager.php @@ -0,0 +1,37 @@ +newInstance($_COOKIE); + } + return self::$session; + } +} diff --git a/controllers/BaseController.php b/controllers/BaseController.php index 5af14bf..a51eaa2 100644 --- a/controllers/BaseController.php +++ b/controllers/BaseController.php @@ -6,9 +6,9 @@ namespace Alltube\Controller; use Alltube\Config; +use Alltube\SessionManager; use Alltube\Video; use Aura\Session\Segment; -use Aura\Session\SessionFactory; use Psr\Container\ContainerInterface; use Slim\Http\Request; use Slim\Http\Response; @@ -57,14 +57,12 @@ abstract class BaseController * BaseController constructor. * * @param ContainerInterface $container Slim dependency container - * @param array $cookies Cookie array */ - public function __construct(ContainerInterface $container, array $cookies = []) + public function __construct(ContainerInterface $container) { $this->config = Config::getInstance(); $this->container = $container; - $session_factory = new SessionFactory(); - $session = $session_factory->newInstance($cookies); + $session = SessionManager::getSession(); $this->sessionSegment = $session->getSegment(self::class); if ($this->config->stream) { diff --git a/controllers/FrontController.php b/controllers/FrontController.php index 7a46b7f..c577a7d 100644 --- a/controllers/FrontController.php +++ b/controllers/FrontController.php @@ -42,11 +42,10 @@ class FrontController extends BaseController * BaseController constructor. * * @param ContainerInterface $container Slim dependency container - * @param array $cookies Cookie array */ - public function __construct(ContainerInterface $container, array $cookies = []) + public function __construct(ContainerInterface $container) { - parent::__construct($container, $cookies); + parent::__construct($container); $this->localeManager = $this->container->get('locale'); $this->view = $this->container->get('view'); diff --git a/index.php b/index.php index 9e62d10..4b46f74 100644 --- a/index.php +++ b/index.php @@ -31,12 +31,12 @@ $container['view'] = ViewFactory::create($container); if (!class_exists('Locale')) { die('You need to install the intl extension for PHP.'); } -$container['locale'] = new LocaleManager($_COOKIE); +$container['locale'] = new LocaleManager(); $app->add(new LocaleMiddleware($container)); -$frontController = new FrontController($container, $_COOKIE); -$jsonController = new JsonController($container, $_COOKIE); -$downloadController = new DownloadController($container, $_COOKIE); +$frontController = new FrontController($container); +$jsonController = new JsonController($container); +$downloadController = new DownloadController($container); $container['errorHandler'] = [$jsonController, 'error'];