]> git.mxchange.org Git - friendica.git/blobdiff - src/App/Mode.php
Unneeded logging removed
[friendica.git] / src / App / Mode.php
index 3e7b9f0d1679a0fa07a362c8393c785d0d1452e9..7cd16b4bb905e8866af2e28675edd3c77bfaf309 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -22,9 +22,8 @@
 namespace Friendica\App;
 
 use Detection\MobileDetect;
-use Friendica\Core\Config\ValueObject\Cache;
+use Friendica\Core\Config\Capability\IManageConfigValues;
 use Friendica\Database\Database;
-use Friendica\Util\BasePath;
 
 /**
  * Mode of the current Friendica Node
@@ -68,7 +67,6 @@ class Mode
                'objects',
                'outbox',
                'poco',
-               'post',
                'pubsub',
                'pubsubhubbub',
                'receive',
@@ -130,15 +128,13 @@ class Mode
         *
         * @throws \Exception
         */
-       public function determine(BasePath $basepath, Database $database, Cache $configCache)
+       public function determine(string $basePath, Database $database, IManageConfigValues $config): Mode
        {
                $mode = 0;
 
-               $basepathName = $basepath->getPath();
-
-               if (!file_exists($basepathName . '/config/local.config.php')
-                   && !file_exists($basepathName . '/config/local.ini.php')
-                   && !file_exists($basepathName . '/.htconfig.php')) {
+               if (!file_exists($basePath . '/config/local.config.php') &&
+                       !file_exists($basePath . '/config/local.ini.php') &&
+                       !file_exists($basePath . '/.htconfig.php')) {
                        return new Mode($mode);
                }
 
@@ -150,16 +146,7 @@ class Mode
 
                $mode |= Mode::DBAVAILABLE;
 
-               if ($database->fetchFirst("SHOW TABLES LIKE 'config'") === false) {
-                       return new Mode($mode);
-               }
-
-               $mode |= Mode::DBCONFIGAVAILABLE;
-
-               if (!empty($configCache->get('system', 'maintenance')) ||
-                   // Don't use Config or Configuration here because we're possibly BEFORE initializing the Configuration,
-                   // so this could lead to a dependency circle
-                   !empty($database->selectFirst('config', ['v'], ['cat' => 'system', 'k' => 'maintenance'])['v'])) {
+               if (!empty($config->get('system', 'maintenance'))) {
                        return new Mode($mode);
                }
 
@@ -178,7 +165,7 @@ class Mode
         *
         * @return Mode returns the determined mode
         */
-       public function determineRunMode(bool $isBackend, array $server, Arguments $args, MobileDetect $mobileDetect)
+       public function determineRunMode(bool $isBackend, array $server, Arguments $args, MobileDetect $mobileDetect): Mode
        {
                foreach (self::BACKEND_CONTENT_TYPES as $type) {
                        if (strpos(strtolower($server['HTTP_ACCEPT'] ?? ''), $type) !== false) {
@@ -201,7 +188,7 @@ class Mode
         *
         * @return bool returns true, if the mode is set
         */
-       public function has($mode)
+       public function has(int $mode): bool
        {
                return ($this->mode & $mode) > 0;
        }
@@ -227,20 +214,20 @@ class Mode
         *
         * @return int Execution Mode
         */
-       public function getExecutor()
+       public function getExecutor(): int
        {
                return $this->executor;
        }
 
        /**
-        * Install mode is when the local config file is missing or the DB schema hasn't been installed yet.
+        * Install mode is when the local config file is missing or the database isn't available.
         *
-        * @return bool
+        * @return bool Whether installation mode is active (local/database configuration files present or not)
         */
-       public function isInstall()
+       public function isInstall(): bool
        {
                return !$this->has(Mode::LOCALCONFIGPRESENT) ||
-                      !$this->has(MODE::DBCONFIGAVAILABLE);
+                      !$this->has(MODE::DBAVAILABLE);
        }
 
        /**
@@ -248,11 +235,10 @@ class Mode
         *
         * @return bool
         */
-       public function isNormal()
+       public function isNormal(): bool
        {
                return $this->has(Mode::LOCALCONFIGPRESENT) &&
                       $this->has(Mode::DBAVAILABLE) &&
-                      $this->has(Mode::DBCONFIGAVAILABLE) &&
                       $this->has(Mode::MAINTENANCEDISABLED);
        }
 
@@ -261,7 +247,7 @@ class Mode
         *
         * @return bool Is it a backend call
         */
-       public function isBackend()
+       public function isBackend(): bool
        {
                return $this->isBackend;
        }
@@ -271,7 +257,7 @@ class Mode
         *
         * @return bool true if it was an AJAX request
         */
-       public function isAjax()
+       public function isAjax(): bool
        {
                return $this->isAjax;
        }
@@ -281,7 +267,7 @@ class Mode
         *
         * @return bool true if it was an mobile request
         */
-       public function isMobile()
+       public function isMobile(): bool
        {
                return $this->isMobile;
        }
@@ -291,7 +277,7 @@ class Mode
         *
         * @return bool true if it was an tablet request
         */
-       public function isTablet()
+       public function isTablet(): bool
        {
                return $this->isTablet;
        }