]> git.joonet.de Git - adminer.git/commitdiff
PHPStan: Fix level 1 errors
authorJakub Vrana <jakub@vrana.cz>
Wed, 26 Mar 2025 12:49:11 +0000 (13:49 +0100)
committerJakub Vrana <jakub@vrana.cz>
Wed, 26 Mar 2025 12:49:11 +0000 (13:49 +0100)
15 files changed:
adminer/call.inc.php
adminer/drivers/mssql.inc.php
adminer/drivers/mysql.inc.php
adminer/drivers/oracle.inc.php
adminer/drivers/pgsql.inc.php
adminer/drivers/sqlite.inc.php
adminer/dump.inc.php
adminer/include/functions.inc.php
adminer/select.inc.php
adminer/sql.inc.php
compile.php
phpstan.neon
plugins/drivers/elastic.php
plugins/drivers/mongo.php
plugins/drivers/simpledb.php

index 90d28596edbd7cf24af1f7835943ab4a7beb482f..236ae3b4253abafceee3eaf82aa92e32ded812d1 100644 (file)
@@ -19,6 +19,7 @@ foreach ($routine["fields"] as $i => $field) {
 if (!$error && $_POST) {
        $call = array();
        foreach ($routine["fields"] as $key => $field) {
+               $val = "";
                if (in_array($key, $in)) {
                        $val = process_input($field);
                        if ($val === false) {
index d6833bfd760337621a4d82dbb11d10b1627f6b79..c9302cf3baf3e56a420d5105d4f7c39e00610fb2 100644 (file)
@@ -316,7 +316,7 @@ if (isset($_GET["mssql"])) {
                return $connection->error;
        }
 
-       function get_databases() {
+       function get_databases($flush) {
                return get_vals("SELECT name FROM sys.databases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb')");
        }
 
@@ -598,7 +598,7 @@ WHERE OBJECT_NAME(i.object_id) = " . q($table), $connection2) as $row
                return apply_queries("ALTER SCHEMA " . idf_escape($target) . " TRANSFER", array_merge($tables, $views));
        }
 
-       function trigger($name) {
+       function trigger($name, $table) {
                if ($name == "") {
                        return array();
                }
@@ -707,7 +707,7 @@ WHERE sys1.xtype = 'TR' AND sys2.name = " . q($table)) as $row
        function trigger_sql($table) {
                $return = "";
                foreach (triggers($table) as $name => $trigger) {
-                       $return .= create_trigger(" ON " . table($table), trigger($name)) . ";";
+                       $return .= create_trigger(" ON " . table($table), trigger($name, $table)) . ";";
                }
                return $return;
        }
index a44da959757885f587ed969feffd200c09b16e9e..423b0a4e561d39f0d016555c38d1763434a04465 100644 (file)
@@ -961,10 +961,11 @@ if (!defined('Adminer\DRIVER')) {
 
        /** Get information about trigger
        * @param string trigger name
+       * @param string
        * @return Trigger
        * @phpstan-type Trigger array{Trigger:string, Timing:string, Event:string, Of:string, Type:string, Statement:string}
        */
-       function trigger($name) {
+       function trigger($name, $table) {
                if ($name == "") {
                        return array();
                }
index 4c8d490c41cb3bfbf4eeb66ed90eb817d0afb7a3..21edace3bf7457df8b3bd4351f00b9dd59161181 100644 (file)
@@ -221,7 +221,7 @@ if (isset($_GET["oracle"])) {
                return $connection->error;
        }
 
-       function get_databases() {
+       function get_databases($flush) {
                return get_vals(
                        "SELECT DISTINCT tablespace_name FROM (
 SELECT tablespace_name FROM user_tablespaces
index 3e278b152deeae62cf1ca8b449bd476f5a70b542..a699126edeb81468dfa79a7627add77c3f14f061 100644 (file)
@@ -338,7 +338,7 @@ if (isset($_GET["pgsql"])) {
                return $connection->error;
        }
 
-       function get_databases() {
+       function get_databases($flush) {
                return get_vals("SELECT datname FROM pg_database
 WHERE datallowconn = TRUE AND has_database_privilege(datname, 'CONNECT')
 ORDER BY datname");
index 76a3d47d47154dbf58ca07e880f5e8765c3e72f2..252873b8ee20f75403c9e065b6ef6577ce0db5c4 100644 (file)
@@ -200,7 +200,7 @@ if (isset($_GET["sqlite"])) {
                return new Db;
        }
 
-       function get_databases() {
+       function get_databases($flush) {
                return array();
        }
 
@@ -567,7 +567,7 @@ if (isset($_GET["sqlite"])) {
                        }
                        $triggers = array();
                        foreach (triggers($table) as $trigger_name => $timing_event) {
-                               $trigger = trigger($trigger_name);
+                               $trigger = trigger($trigger_name, $table);
                                $triggers[] = "CREATE TRIGGER " . idf_escape($trigger_name) . " " . implode(" ", $timing_event) . " ON " . table($name) . "\n$trigger[Statement]";
                        }
                        $auto_increment = $auto_increment ? 0 : get_val("SELECT seq FROM sqlite_sequence WHERE name = " . q($table)); // if $auto_increment is set then it will be updated later
@@ -633,7 +633,7 @@ if (isset($_GET["sqlite"])) {
                return false;
        }
 
-       function trigger($name) {
+       function trigger($name, $table) {
                if ($name == "") {
                        return array("Statement" => "BEGIN\n\t;\nEND");
                }
index 16a3c8f3b6fe38ea469580f0f6995de01113989c..0284c655c7633ab98dfff92a9e114d5246eb4ab4 100644 (file)
@@ -93,6 +93,7 @@ SET foreign_key_checks = 0;
                                        $table = (DB == "" || in_array($name, (array) $_POST["tables"]));
                                        $data = (DB == "" || in_array($name, (array) $_POST["data"]));
                                        if ($table || $data) {
+                                               $tmp_file = null;
                                                if ($ext == "tar") {
                                                        $tmp_file = new TmpFile;
                                                        ob_start(array($tmp_file, 'write'), 1e5);
index 948aaafbd3fd5bc2f49bc944647abda4e65ca86f..1d457bbc16ed5813e7a224ec0c9da37650835932 100644 (file)
@@ -1050,8 +1050,10 @@ function lzw_decompress($binary) {
                }
        }
        // decompression
+       /** @var list<?string> */
        $dictionary = range("\0", "\xFF");
        $return = "";
+       $word = "";
        foreach ($codes as $i => $code) {
                $element = $dictionary[$code];
                if (!isset($element)) {
index 1cbb068339f78b3e8b21e641393b7c2c902b0ed4..d0dba9251bfdd03e5c99623fd1d995879d0e9b89 100644 (file)
@@ -118,9 +118,7 @@ if ($_POST && !$error) {
                                }
                        }
                        if ($_POST["delete"] || $set) {
-                               if ($_POST["clone"]) {
-                                       $query = "INTO " . table($TABLE) . " (" . implode(", ", array_keys($set)) . ")\nSELECT " . implode(", ", $set) . "\nFROM " . table($TABLE);
-                               }
+                               $query = ($_POST["clone"] ? "INTO " . table($TABLE) . " (" . implode(", ", array_keys($set)) . ")\nSELECT " . implode(", ", $set) . "\nFROM " . table($TABLE) : "");
                                if ($_POST["all"] || ($primary && is_array($_POST["check"])) || $is_group) {
                                        $result = ($_POST["delete"]
                                                ? $driver->delete($TABLE, $where_check)
@@ -484,6 +482,7 @@ if (!$columns && support("table")) {
                if (!is_ajax()) {
                        if ($rows || $page) {
                                $exact_count = true;
+                               $found_rows = null;
                                if ($_GET["page"] != "last") {
                                        if ($limit == "" || (count($rows) < $limit && ($rows || !$page))) {
                                                $found_rows = ($page ? $page * $limit : 0) + count($rows);
@@ -507,10 +506,8 @@ if (!$columns && support("table")) {
                                        );
                                        echo "\n";
                                }
-                       }
 
-                       echo "<div class='footer'><div>\n";
-                       if ($rows || $page) {
+                               echo "<div class='footer'><div>\n";
                                if ($pagination) {
                                        // display first, previous 4, next 4 and last page
                                        $max_page = ($found_rows === false
@@ -578,10 +575,9 @@ if (!$columns && support("table")) {
                                }
 
                                $adminer->selectEmailPrint(array_filter($email_fields, 'strlen'), $columns);
+                               echo "</div></div>\n";
                        }
 
-                       echo "</div></div>\n";
-
                        if ($adminer->selectImportPrint()) {
                                echo "<div>";
                                echo "<a href='#import'>" . lang('Import') . "</a>";
index 6fdc849e13d190ee0b1a0ce508f3c1890629e6a2..67ded6331e0d813fed5e2566a4bcf9f68877da49 100644 (file)
@@ -152,6 +152,7 @@ if (!$error && $_POST) {
                                                                                $time .= ", <a href='#$warnings_id'>" . lang('Warnings') . "</a>" . script("qsl('a').onclick = partial(toggle, '$warnings_id');", "");
                                                                        }
                                                                        $explain = null;
+                                                                       $orgtables = null;
                                                                        $explain_id = "explain-$commands";
                                                                        if (is_object($result)) {
                                                                                $limit = $_POST["limit"];
index 47a95dfd2432c97011ea14ffe5cbc6d938af8ed9..24f98f5eca0f34538c9f0c00eeabd529be0856cb 100755 (executable)
@@ -219,7 +219,7 @@ function minify_js($file) {
        return lzw_compress($file);
 }
 
-function compile_file($match) {
+function compile_file($match, $callback) { // $callback only to match signature
        global $project;
        $file = "";
        list(, $filenames, $callback) = $match;
index 3a9be1bbc6768c3fe223cf2decaee141e06fd0ba..df336bbd8622a6c9301d364eeaf2fbf993d23bb8 100644 (file)
@@ -1,10 +1,11 @@
 parameters:
-       level: 0
+       level: 1
        ignoreErrors:
                - identifier: include.fileNotFound # relative includes
                - identifier: includeOnce.fileNotFound # ./adminer-plugins.php
                - "~^Function (set_magic_quotes_runtime|mysql_)~" # PHP < 7 functions
                - "~^Instantiated class Adminer\\w~" # no support for classes defined inside function
+               - "~^Variable \\$(adminer|connection|driver|drivers|error|HTTPS|LANG|langs|permanent|has_token|token|translations|VERSION) might not be defined~" # declared in bootstrap.inc.php
        paths:
                - .
        phpVersion:
index 2369d0e80957163707c4d4b81ead58b0201f56d4..55f3ff06eb9fe9fec563d35a5bf1959ef28f3e9b 100644 (file)
@@ -207,9 +207,7 @@ if (isset($_GET["elastic"])) {
                        if (empty($search)) {
                                return false;
                        }
-                       if ($select == array("*")) {
-                               $tableFields = array_keys(fields($table));
-                       }
+                       $tableFields = ($select == array("*") ? array_keys(fields($table)) : array());
 
                        $return = array();
                        foreach ($search["hits"]["hits"] as $hit) {
@@ -332,7 +330,7 @@ if (isset($_GET["elastic"])) {
                return $credentials[1];
        }
 
-       function get_databases() {
+       function get_databases($flush) {
                return array("elastic");
        }
 
@@ -445,7 +443,7 @@ if (isset($_GET["elastic"])) {
                return h(connection()->error);
        }
 
-       function information_schema() {
+       function information_schema($db) {
                //
        }
 
index 55abb3f14170aebf66dff61fb87c5173d07dd820..bbe925df725f2a631971482efac35fd8b3aa421e 100644 (file)
@@ -478,7 +478,7 @@ if (isset($_GET["mongo"])) {
        function db_collation($db, $collations) {
        }
 
-       function information_schema() {
+       function information_schema($db) {
        }
 
        function is_view($table_status) {
index b154c675cc39493936b6fc2f870c30bbeff2c5ef..ead12be80d76008cff522f24ed93ee745fe54dc2 100644 (file)
@@ -274,7 +274,7 @@ if (isset($_GET["simpledb"])) {
                return $credentials[1];
        }
 
-       function get_databases() {
+       function get_databases($flush) {
                return array("domain");
        }
 
@@ -329,7 +329,7 @@ if (isset($_GET["simpledb"])) {
                return h($connection->error);
        }
 
-       function information_schema() {
+       function information_schema($db) {
        }
 
        function indexes($table, $connection2 = null) {