]> git.mxchange.org Git - friendica.git/blobdiff - src/Database/DBA.php
Improve Logger calls
[friendica.git] / src / Database / DBA.php
index d2a739e9313aa07b9be4aaf948bab6398c1930e2..832f0a444f994684354267123a0f9ff6c8c39fed 100644 (file)
@@ -2,10 +2,11 @@
 
 namespace Friendica\Database;
 
-use Friendica\Core\Config\IConfigCache;
+use Friendica\Core\Config\Cache\IConfigCache;
 use Friendica\Core\Logger;
 use Friendica\Core\System;
 use Friendica\Util\DateTimeFormat;
+use Friendica\Util\Profiler;
 use mysqli;
 use mysqli_result;
 use mysqli_stmt;
@@ -35,6 +36,14 @@ class DBA
         * @var IConfigCache
         */
        private static $configCache;
+       /**
+        * @var Profiler
+        */
+       private static $profiler;
+       /**
+        * @var string
+        */
+       private static $basePath;
        private static $server_info = '';
        private static $connection;
        private static $driver;
@@ -50,14 +59,16 @@ class DBA
        private static $db_name = '';
        private static $db_charset = '';
 
-       public static function connect($configCache, $serveraddr, $user, $pass, $db, $charset = null)
+       public static function connect($basePath, IConfigCache $configCache, Profiler $profiler, $serveraddr, $user, $pass, $db, $charset = null)
        {
                if (!is_null(self::$connection) && self::connected()) {
                        return true;
                }
 
                // We are storing these values for being able to perform a reconnect
+               self::$basePath = $basePath;
                self::$configCache = $configCache;
+               self::$profiler = $profiler;
                self::$db_serveraddr = $serveraddr;
                self::$db_user = $user;
                self::$db_pass = $pass;
@@ -158,7 +169,7 @@ class DBA
        public static function reconnect() {
                self::disconnect();
 
-               $ret = self::connect(self::$configCache, self::$db_serveraddr, self::$db_user, self::$db_pass, self::$db_name, self::$db_charset);
+               $ret = self::connect(self::$basePath, self::$configCache, self::$profiler, self::$db_serveraddr, self::$db_user, self::$db_pass, self::$db_name, self::$db_charset);
                return $ret;
        }
 
@@ -392,7 +403,6 @@ class DBA
         * @throws \Exception
         */
        public static function p($sql) {
-               $a = \get_app();
 
                $stamp1 = microtime(true);
 
@@ -415,7 +425,7 @@ class DBA
 
                if ((substr_count($sql, '?') != count($args)) && (count($args) > 0)) {
                        // Question: Should we continue or stop the query here?
-                       Logger::log('Parameter mismatch. Query "'.$sql.'" - Parameters '.print_r($args, true), Logger::DEBUG);
+                       Logger::warning('Query parameters mismatch.', ['query' => $sql, 'args' => $args, 'callstack' => System::callstack()]);
                }
 
                $sql = self::cleanQuery($sql);
@@ -582,7 +592,7 @@ class DBA
                        self::$errorno = $errorno;
                }
 
-               $a->saveTimestamp($stamp1, 'database');
+               self::$profiler->saveTimestamp($stamp1, 'database', System::callstack());
 
                if (self::$configCache->get('system', 'db_log')) {
                        $stamp2 = microtime(true);
@@ -611,7 +621,6 @@ class DBA
         * @throws \Exception
         */
        public static function e($sql) {
-               $a = \get_app();
 
                $stamp = microtime(true);
 
@@ -654,7 +663,7 @@ class DBA
                        self::$errorno = $errorno;
                }
 
-               $a->saveTimestamp($stamp, "database_write");
+               self::$profiler->saveTimestamp($stamp, "database_write", System::callstack());
 
                return $retval;
        }
@@ -777,7 +786,6 @@ class DBA
         * @return array current row
         */
        public static function fetch($stmt) {
-               $a = \get_app();
 
                $stamp1 = microtime(true);
 
@@ -824,7 +832,7 @@ class DBA
                                }
                }
 
-               $a->saveTimestamp($stamp1, 'database');
+               self::$profiler->saveTimestamp($stamp1, 'database', System::callstack());
 
                return $columns;
        }
@@ -1031,7 +1039,7 @@ class DBA
         * This process must only be started once, since the value is cached.
         */
        private static function buildRelationData() {
-               $definition = DBStructure::definition(self::$configCache->get('system', 'basepath'));
+               $definition = DBStructure::definition(self::$basePath);
 
                foreach ($definition AS $table => $structure) {
                        foreach ($structure['fields'] AS $field => $field_struct) {
@@ -1534,7 +1542,6 @@ class DBA
         * @return boolean was the close successful?
         */
        public static function close($stmt) {
-               $a = \get_app();
 
                $stamp1 = microtime(true);
 
@@ -1562,7 +1569,7 @@ class DBA
                                break;
                }
 
-               $a->saveTimestamp($stamp1, 'database');
+               self::$profiler->saveTimestamp($stamp1, 'database', System::callstack());
 
                return $ret;
        }