]> git.mxchange.org Git - friendica.git/blobdiff - src/Factory/SessionFactory.php
Update wrong/missing references to classes
[friendica.git] / src / Factory / SessionFactory.php
index f4268a2b9586ca248e2ee285b760ee247d9a47ef..25b4c17b1f01cb71a8d0301bf0de5c39102afe84 100644 (file)
@@ -5,11 +5,10 @@ namespace Friendica\Factory;
 use Friendica\App;
 use Friendica\Core\Cache\Cache;
 use Friendica\Core\Cache\ICache;
-use Friendica\Core\Config\Configuration;
+use Friendica\Core\Config\IConfiguration;
 use Friendica\Core\Session;
 use Friendica\Core\System;
 use Friendica\Database\Database;
-use Friendica\Model\User\Cookie;
 use Friendica\Util\Profiler;
 use Psr\Log\LoggerInterface;
 
@@ -19,20 +18,18 @@ use Psr\Log\LoggerInterface;
 class SessionFactory
 {
        /** @var string The plain, PHP internal session management */
-       const INTERNAL = 'native';
+       const HANDLER_NATIVE = 'native';
        /** @var string Using the database for session management */
-       const DATABASE = 'database';
+       const HANDLER_DATABASE = 'database';
        /** @var string Using the cache for session management */
-       const CACHE = 'cache';
-       /** @var string A temporary cached session */
-       const MEMORY  = 'memory';
-       /** @var string The default type for Session management in case of no config */
-       const DEFAULT = self::DATABASE;
+       const HANDLER_CACHE = 'cache';
+
+       const HANDLER_DEFAULT = self::HANDLER_DATABASE;
 
        /**
         * @param App\Mode        $mode
-        * @param Configuration   $config
-        * @param Cookie          $cookie
+        * @param App\BaseURL     $baseURL
+        * @param IConfiguration  $config
         * @param Database        $dba
         * @param ICache          $cache
         * @param LoggerInterface $logger
@@ -40,34 +37,33 @@ class SessionFactory
         *
         * @return Session\ISession
         */
-       public function createSession(App\Mode $mode, Configuration $config, Cookie $cookie, Database $dba, ICache $cache, LoggerInterface $logger, Profiler $profiler, array $server = [])
+       public function createSession(App\Mode $mode, App\BaseURL $baseURL, IConfiguration $config, Database $dba, ICache $cache, LoggerInterface $logger, Profiler $profiler, array $server = [])
        {
                $stamp1  = microtime(true);
                $session = null;
 
                try {
                        if ($mode->isInstall() || $mode->isBackend()) {
-                               $session = new Session\Memory($config, $cookie);
+                               $session = new Session\Memory();
                        } else {
-                               $session_handler = $config->get('system', 'session_handler', self::DEFAULT);
+                               $session_handler = $config->get('system', 'session_handler', self::HANDLER_DEFAULT);
+                               $handler = null;
 
                                switch ($session_handler) {
-                                       case self::INTERNAL:
-                                               $session = new Session\Native($config, $cookie);
-                                               break;
-                                       case self::DATABASE:
-                                       default:
-                                               $session = new Session\Database($config, $cookie, $dba, $logger, $server);
+                                       case self::HANDLER_DATABASE:
+                                               $handler = new Session\Handler\Database($dba, $logger, $server);
                                                break;
-                                       case self::CACHE:
+                                       case self::HANDLER_CACHE:
                                                // In case we're using the db as cache driver, use the native db session, not the cache
                                                if ($config->get('system', 'cache_driver') === Cache::TYPE_DATABASE) {
-                                                       $session = new Session\Database($config, $cookie, $dba, $logger, $server);
+                                                       $handler = new Session\Handler\Database($dba, $logger, $server);
                                                } else {
-                                                       $session = new Session\Cache($config, $cookie, $cache, $logger, $server);
+                                                       $handler = new Session\Handler\Cache($cache, $logger, $server);
                                                }
                                                break;
                                }
+
+                               $session = new Session\Native($baseURL, $handler);
                        }
                } finally {
                        $profiler->saveTimestamp($stamp1, 'parser', System::callstack());