]> git.mxchange.org Git - friendica.git/blobdiff - src/Database/Database.php
Merge pull request #11784 from MrPetovan/task/11779-blocklist-notification
[friendica.git] / src / Database / Database.php
index 6e5e147da942280a90802dcb22161fa94c4b51ae..cd2803c0fc5c88368766a76c991beba2a94c8acd 100644 (file)
@@ -23,6 +23,8 @@ namespace Friendica\Database;
 
 use Friendica\Core\Config\ValueObject\Cache;
 use Friendica\Core\System;
+use Friendica\Database\Definition\DbaDefinition;
+use Friendica\Database\Definition\ViewDefinition;
 use Friendica\Network\HTTPException\ServiceUnavailableException;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Profiler;
@@ -73,20 +75,21 @@ class Database
        protected $in_retrial     = false;
        protected $testmode       = false;
        private $relation       = [];
+       /** @var DbaDefinition */
+       protected $dbaDefinition;
+       /** @var ViewDefinition */
+       protected $viewDefinition;
 
-       public function __construct(Cache $configCache, Profiler $profiler, LoggerInterface $logger)
+       public function __construct(Cache $configCache, Profiler $profiler, DbaDefinition $dbaDefinition, ViewDefinition $viewDefinition, LoggerInterface $logger)
        {
                // We are storing these values for being able to perform a reconnect
-               $this->configCache   = $configCache;
-               $this->profiler      = $profiler;
-               $this->logger        = $logger;
+               $this->configCache    = $configCache;
+               $this->profiler       = $profiler;
+               $this->logger         = $logger;
+               $this->dbaDefinition  = $dbaDefinition;
+               $this->viewDefinition = $viewDefinition;
 
                $this->connect();
-
-               if ($this->isConnected()) {
-                       // Loads DB_UPDATE_VERSION constant
-                       DBStructure::definition($configCache->get('system', 'basepath'), false);
-               }
        }
 
        /**
@@ -1435,7 +1438,7 @@ class Database
                array_walk($fields, function(&$value, $key) use ($options)
                {
                        $field = $value;
-                       $value = '`' . str_replace('`', '``', $value) . '`';
+                       $value = DBA::quoteIdentifier($field);
 
                        if (!empty($options['group_by']) && !in_array($field, $options['group_by'])) {
                                $value = 'ANY_VALUE(' . $value . ') AS ' . $value;
@@ -1609,10 +1612,10 @@ class Database
 
                $types = [];
 
-               $tables = DBStructure::definition('', false);
+               $tables = $this->dbaDefinition->getAll();
                if (empty($tables[$table])) {
                        // When a matching table wasn't found we check if it is a view
-                       $views = View::definition('', false);
+                       $views = $this->viewDefinition->getAll();
                        if (empty($views[$table])) {
                                return $fields;
                        }