]> git.mxchange.org Git - friendica.git/commitdiff
Optimize L10n usage for Session (reduce "App" complexity even more)
authornupplaPhil <admin@philipp.info>
Mon, 9 Dec 2019 23:56:49 +0000 (00:56 +0100)
committernupplaPhil <admin@philipp.info>
Mon, 9 Dec 2019 23:56:49 +0000 (00:56 +0100)
src/App.php
src/Core/L10n/L10n.php

index eed91769fd9f6b23099f47438ecd714da36a9e10..06eea7a8ae27b248aae675ff8a269a10bf1c19ce 100644 (file)
@@ -674,11 +674,7 @@ class App
                        }
 
                        // Exclude the backend processes from the session management
-                       if (!$this->mode->isBackend()) {
-                               $this->l10n->setSessionVariable();
-                               $this->l10n->setLangFromSession();
-                       } else {
-                               $_SESSION = [];
+                       if ($this->mode->isBackend()) {
                                Core\Worker::executeIfIdle();
                        }
 
index ce930b402011641112de09c428d9bd78a86479fc..28b788e26bc4a057b2ad99efe5334ee215d27959 100644 (file)
@@ -4,7 +4,7 @@ namespace Friendica\Core\L10n;
 
 use Friendica\Core\Config\Configuration;
 use Friendica\Core\Hook;
-use Friendica\Core\Session;
+use Friendica\Core\Session\ISession;
 use Friendica\Database\Database;
 use Friendica\Util\Strings;
 use Psr\Log\LoggerInterface;
@@ -53,12 +53,14 @@ class L10n
         */
        private $logger;
 
-       public function __construct(Configuration $config, Database $dba, LoggerInterface $logger, array $server, array $get)
+       public function __construct(Configuration $config, Database $dba, LoggerInterface $logger, ISession $session,  array $server, array $get)
        {
                $this->dba    = $dba;
                $this->logger = $logger;
 
                $this->loadTranslationTable(L10n::detectLanguage($server, $get, $config->get('system', 'language', 'en')));
+               $this->setSessionVariable($session);
+               $this->setLangFromSession($session);
        }
 
        /**
@@ -74,28 +76,28 @@ class L10n
        /**
         * Sets the language session variable
         */
-       public function setSessionVariable()
+       private function setSessionVariable(ISession $session)
        {
-               if (Session::get('authenticated') && !Session::get('language')) {
-                       $_SESSION['language'] = $this->lang;
+               if ($session->get('authenticated') && !$session->get('language')) {
+                       $session->set('language', $this->lang);
                        // we haven't loaded user data yet, but we need user language
-                       if (Session::get('uid')) {
+                       if ($session->get('uid')) {
                                $user = $this->dba->selectFirst('user', ['language'], ['uid' => $_SESSION['uid']]);
                                if ($this->dba->isResult($user)) {
-                                       $_SESSION['language'] = $user['language'];
+                                       $session->set('language', $user['language']);
                                }
                        }
                }
 
                if (isset($_GET['lang'])) {
-                       Session::set('language', $_GET['lang']);
+                       $session->set('language', $_GET['lang']);
                }
        }
 
-       public function setLangFromSession()
+       private function setLangFromSession(ISession $session)
        {
-               if (Session::get('language') !== $this->lang) {
-                       $this->loadTranslationTable(Session::get('language'));
+               if ($session->get('language') !== $this->lang) {
+                       $this->loadTranslationTable($session->get('language'));
                }
        }