From 20d748e841dba5f55c4f3cd5d61be2ffbe470be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Fri, 10 Feb 2023 16:47:15 -0300 Subject: [PATCH 1/2] Prepare for version 6.0.0-dev MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maurício Meneghini Fauth --- ChangeLog | 2 +- README | 2 +- composer.json | 2 +- doc/conf.py | 2 +- libraries/classes/Version.php | 10 +++++----- package.json | 2 +- scripts/create-release.sh | 4 ++-- test/classes/ThemeTest.php | 2 +- test/classes/_data/gen_version_info/theme.json | 4 ++-- themes/bootstrap/theme.json | 4 ++-- themes/metro/theme.json | 4 ++-- themes/original/theme.json | 4 ++-- themes/pmahomme/theme.json | 4 ++-- 13 files changed, 23 insertions(+), 23 deletions(-) diff --git a/ChangeLog b/ChangeLog index eff0b13e05..dbd0982708 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,7 +1,7 @@ phpMyAdmin - ChangeLog ====================== -5.3.0 (not yet released) +6.0.0 (not yet released) - issue #17842 Change js.cookie.js to js.cookie.min.js - issue #17632 Improve tab keypress to text fields on the login form diff --git a/README b/README index 850a1e8ded..4b10264134 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ phpMyAdmin - Readme =================== -Version 5.3.0-dev +Version 6.0.0-dev A web interface for MySQL and MariaDB. diff --git a/composer.json b/composer.json index dfb4454547..81ddb34dcc 100644 --- a/composer.json +++ b/composer.json @@ -117,7 +117,7 @@ }, "extra": { "branch-alias": { - "dev-master": "5.3.x-dev" + "dev-master": "6.0.x-dev" } }, "scripts": { diff --git a/doc/conf.py b/doc/conf.py index 2319a0c523..3ca2fd4a6b 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -51,7 +51,7 @@ copyright = u'2012 - 2021, The phpMyAdmin devel team' # built documents. # # The short X.Y version. -version = '5.3.0-dev' +version = '6.0.0-dev' # The full version, including alpha/beta/rc tags. release = version diff --git a/libraries/classes/Version.php b/libraries/classes/Version.php index 24a8ae8406..e6ba39ac06 100644 --- a/libraries/classes/Version.php +++ b/libraries/classes/Version.php @@ -14,12 +14,12 @@ use const VERSION_SUFFIX; final class Version { // The VERSION_SUFFIX constant is defined at libraries/constants.php - public const VERSION = '5.3.0-dev' . VERSION_SUFFIX; - public const SERIES = '5.3'; - public const MAJOR = 5; - public const MINOR = 3; + public const VERSION = '6.0.0-dev' . VERSION_SUFFIX; + public const SERIES = '6.0'; + public const MAJOR = 6; + public const MINOR = 0; public const PATCH = 0; - public const ID = 50300; + public const ID = 60000; public const PRE_RELEASE_NAME = 'dev'; public const IS_DEV = true; } diff --git a/package.json b/package.json index 2afb008c2f..927060fb89 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "phpmyadmin", - "version": "5.3.0-dev", + "version": "6.0.0-dev", "description": "A web interface for MySQL and MariaDB", "repository": "https://github.com/phpmyadmin/phpmyadmin.git", "author": "The phpMyAdmin Team (https://www.phpmyadmin.net/team/)", diff --git a/scripts/create-release.sh b/scripts/create-release.sh index 9f100b75f4..0435545eff 100755 --- a/scripts/create-release.sh +++ b/scripts/create-release.sh @@ -20,7 +20,7 @@ set -e KITS="all-languages english source" COMPRESSIONS="zip-7z txz tgz" # The version series this script is allowed to handle -VERSION_SERIES="5.3" +VERSION_SERIES="6.0" # Process parameters @@ -473,7 +473,7 @@ if [ -f ./scripts/console ]; then ./scripts/console cache:warmup --routing fi -PHP_REQ=$(sed -n '/"php"/ s/.*"\^\([0-9]\.[0-9]\.[0-9]\).*/\1/p' composer.json) +PHP_REQ=$(sed -n '/"php"/ s/.*"\^\([0-9]\.[0-9]\.[0-9]\|[0-9]\.[0-9]\).*/\1/p' composer.json) if [ -z "$PHP_REQ" ] ; then echo "Failed to figure out required PHP version from composer.json" diff --git a/test/classes/ThemeTest.php b/test/classes/ThemeTest.php index 35c8491811..aacd252a95 100644 --- a/test/classes/ThemeTest.php +++ b/test/classes/ThemeTest.php @@ -80,7 +80,7 @@ class ThemeTest extends AbstractTestCase $this->object->setFsPath(TEST_PATH . 'test/classes/_data/gen_version_info/'); $this->assertTrue($this->object->loadInfo()); $this->assertEquals('Test Theme', $this->object->getName()); - $this->assertEquals('5.3', $this->object->getVersion()); + $this->assertEquals('6.0', $this->object->getVersion()); } /** diff --git a/test/classes/_data/gen_version_info/theme.json b/test/classes/_data/gen_version_info/theme.json index 90e76b7828..83e2a8de8a 100644 --- a/test/classes/_data/gen_version_info/theme.json +++ b/test/classes/_data/gen_version_info/theme.json @@ -1,7 +1,7 @@ { "name": "Test Theme", - "version": "5.3", + "version": "6.0", "author": "phpMyAdmin developers", "url": "https://www.phpmyadmin.net/", - "supports": ["5.2", "5.3"] + "supports": ["6.0"] } diff --git a/themes/bootstrap/theme.json b/themes/bootstrap/theme.json index 8ab3593e72..f21ae1caa5 100644 --- a/themes/bootstrap/theme.json +++ b/themes/bootstrap/theme.json @@ -1,8 +1,8 @@ { "name": "Bootstrap", - "version": "5.3", + "version": "6.0", "description": "Bootstrap theme for phpMyAdmin", "author": "phpMyAdmin developers", "url": "https://www.phpmyadmin.net/", - "supports": ["5.3"] + "supports": ["6.0"] } diff --git a/themes/metro/theme.json b/themes/metro/theme.json index 0092229145..e687403c04 100644 --- a/themes/metro/theme.json +++ b/themes/metro/theme.json @@ -1,8 +1,8 @@ { "name": "Metro", - "version": "5.3", + "version": "6.0", "description": "Metro theme for phpMyAdmin", "author": "phpMyAdmin developers and hplhu", "url": "https://www.phpmyadmin.net/", - "supports": ["5.3"] + "supports": ["6.0"] } diff --git a/themes/original/theme.json b/themes/original/theme.json index f7f458d0b7..965155b795 100644 --- a/themes/original/theme.json +++ b/themes/original/theme.json @@ -1,8 +1,8 @@ { "name": "Original", - "version": "5.3", + "version": "6.0", "description": "Original phpMyAdmin theme", "author": "phpMyAdmin developers", "url": "https://www.phpmyadmin.net/", - "supports": ["5.3"] + "supports": ["6.0"] } diff --git a/themes/pmahomme/theme.json b/themes/pmahomme/theme.json index 728c2cb9d5..b1f2cdb28d 100644 --- a/themes/pmahomme/theme.json +++ b/themes/pmahomme/theme.json @@ -1,8 +1,8 @@ { "name": "pmahomme", - "version": "5.3", + "version": "6.0", "description": "Default phpMyAdmin theme", "author": "phpMyAdmin developers", "url": "https://www.phpmyadmin.net/", - "supports": ["5.3"] + "supports": ["6.0"] } From 040b4c582d2359fd1f9334e56ad28e5e26a73669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Fri, 10 Feb 2023 17:39:08 -0300 Subject: [PATCH 2/2] Bump minimum PHP version to 8.1.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maurício Meneghini Fauth --- .github/workflows/daily-snapshots.yml | 2 +- .github/workflows/lint-and-analyse-php.yml | 4 +- .github/workflows/other-tools.yml | 2 +- .github/workflows/tests.yml | 24 +- .scrutinizer.yml | 2 +- ChangeLog | 1 + composer.json | 4 +- doc/faq.rst | 1 + doc/require.rst | 2 +- index.php | 4 +- libraries/classes/Dbal/MysqliStatement.php | 18 +- libraries/classes/Util.php | 4 + phpstan-baseline.neon | 259 ++++++++++++++------- psalm-baseline.xml | 112 ++++++++- setup/index.php | 4 +- test/classes/EnvironmentTest.php | 4 +- 16 files changed, 314 insertions(+), 133 deletions(-) diff --git a/.github/workflows/daily-snapshots.yml b/.github/workflows/daily-snapshots.yml index bdce4891ee..77d5a1502a 100644 --- a/.github/workflows/daily-snapshots.yml +++ b/.github/workflows/daily-snapshots.yml @@ -22,7 +22,7 @@ jobs: matrix: include: - { version: '5.2', branch: 'QA_5_2', php-version: '7.2', node-version: '12', python-version: '3.7' } - - { version: '5.3', branch: 'master', php-version: '7.2', node-version: '14', python-version: '3.7' } + - { version: '6.0', branch: 'master', php-version: '8.1', node-version: '14', python-version: '3.7' } steps: - name: Check out code uses: actions/checkout@v3 diff --git a/.github/workflows/lint-and-analyse-php.yml b/.github/workflows/lint-and-analyse-php.yml index f889474545..667c97d7df 100644 --- a/.github/workflows/lint-and-analyse-php.yml +++ b/.github/workflows/lint-and-analyse-php.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - php-version: ["7.2"] + php-version: ["8.1"] steps: - name: Checkout code uses: actions/checkout@v3 @@ -65,7 +65,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - php-version: ["7.2"] + php-version: ["8.1"] steps: - name: Checkout code uses: actions/checkout@v3 diff --git a/.github/workflows/other-tools.yml b/.github/workflows/other-tools.yml index f8e86cff4c..fd84a9de85 100644 --- a/.github/workflows/other-tools.yml +++ b/.github/workflows/other-tools.yml @@ -33,7 +33,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - php-version: ["7.2"] + php-version: ["8.1"] steps: - name: Checkout code uses: actions/checkout@v3 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 67765e8f0e..29bbb533d4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,13 +20,13 @@ jobs: fail-fast: false matrix: include: - - { php-version: '8', experimental: false, arch: 'amd64', exclude-phpunit-groups: 'extension-iconv' } - - { php-version: '8', experimental: false, arch: 'arm64v8', exclude-phpunit-groups: 'extension-iconv' } - - { php-version: '8', experimental: false, arch: 'arm32v7', exclude-phpunit-groups: 'extension-iconv,32bit-incompatible' } - - { php-version: '8', experimental: false, arch: 'arm32v6', exclude-phpunit-groups: 'extension-iconv,32bit-incompatible' } - - { php-version: '8', experimental: false, arch: 'i386', exclude-phpunit-groups: 'extension-iconv,32bit-incompatible' } - - { php-version: '8', experimental: true, arch: 'ppc64le', exclude-phpunit-groups: 'extension-iconv' } - - { php-version: '8', experimental: false, arch: 's390x', exclude-phpunit-groups: 'extension-iconv,32bit-incompatible' } + - { php-version: '81', experimental: false, arch: 'amd64', exclude-phpunit-groups: 'extension-iconv' } + - { php-version: '81', experimental: false, arch: 'arm64v8', exclude-phpunit-groups: 'extension-iconv' } + - { php-version: '81', experimental: false, arch: 'arm32v7', exclude-phpunit-groups: 'extension-iconv,32bit-incompatible' } + - { php-version: '81', experimental: false, arch: 'arm32v6', exclude-phpunit-groups: 'extension-iconv,32bit-incompatible' } + - { php-version: '81', experimental: false, arch: 'i386', exclude-phpunit-groups: 'extension-iconv,32bit-incompatible' } + - { php-version: '81', experimental: true, arch: 'ppc64le', exclude-phpunit-groups: 'extension-iconv' } + - { php-version: '81', experimental: false, arch: 's390x', exclude-phpunit-groups: 'extension-iconv,32bit-incompatible' } steps: - name: Checkout code uses: actions/checkout@v3 @@ -56,10 +56,10 @@ jobs: run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes - name: Print arch - run: docker run --rm ${{ matrix.arch }}/alpine:3.15 uname -a + run: docker run --rm ${{ matrix.arch }}/alpine:3.17 uname -a - name: Run tests on php ${{ matrix.php-version }} - run: docker run -v $PWD:/app --workdir /app --rm ${{ matrix.arch }}/alpine:3.15 sh /app/do-tests.sh + run: docker run -v $PWD:/app --workdir /app --rm ${{ matrix.arch }}/alpine:3.17 sh /app/do-tests.sh test-php: name: Test on PHP ${{ matrix.php-version }} and ${{ matrix.os }} @@ -67,7 +67,7 @@ jobs: continue-on-error: ${{ matrix.experimental }} strategy: matrix: - php-version: ["7.2", "7.3", "7.4", "8.0", "8.1", "8.2"] + php-version: ["8.1", "8.2"] experimental: [false] os: [ubuntu-latest] phpunit-options: ['--testsuite unit'] @@ -136,7 +136,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - php-version: ["7.2"] + php-version: ["8.1"] os: [ubuntu-latest] extension: ["dbase", "recode"] steps: @@ -196,7 +196,7 @@ jobs: strategy: fail-fast: false matrix: - php-version: ['7.3'] + php-version: ['8.1'] os: [ubuntu-latest] php-extensions: ['mbstring, iconv, mysqli, zip, bz2'] psr-7-library: ['guzzlehttp/psr7', 'nyholm/psr7', 'laminas/laminas-diactoros'] diff --git a/.scrutinizer.yml b/.scrutinizer.yml index acd73d2775..6ec58007ce 100644 --- a/.scrutinizer.yml +++ b/.scrutinizer.yml @@ -22,7 +22,7 @@ build: nodes: analysis: environment: - php: 7.2 + php: 8.1 node: 14 dependencies: before: diff --git a/ChangeLog b/ChangeLog index dbd0982708..e41b5fe7bd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,7 @@ phpMyAdmin - ChangeLog ====================== 6.0.0 (not yet released) +- issue Bump minimum PHP version to 8.1.0 - issue #17842 Change js.cookie.js to js.cookie.min.js - issue #17632 Improve tab keypress to text fields on the login form diff --git a/composer.json b/composer.json index 81ddb34dcc..7a9ce8879a 100644 --- a/composer.json +++ b/composer.json @@ -47,7 +47,7 @@ } ], "require": { - "php": "^7.2.5 || ^8.0", + "php": "^8.1", "ext-hash": "*", "ext-iconv": "*", "ext-json": "*", @@ -105,7 +105,7 @@ "phpstan/phpstan-phpunit": "^1.0", "phpstan/phpstan-strict-rules": "^1.4", "phpstan/phpstan-webmozart-assert": "^1.0", - "phpunit/phpunit": "^8.5 || ^9.5", + "phpunit/phpunit": "^9.5", "pragmarx/google2fa-qrcode": "^2.1", "psalm/plugin-phpunit": "^0.16.1", "roave/security-advisories": "dev-latest", diff --git a/doc/faq.rst b/doc/faq.rst index 0e69dd8ca9..153fdbe50c 100644 --- a/doc/faq.rst +++ b/doc/faq.rst @@ -436,6 +436,7 @@ HHVM is supported up to phpMyAdmin 4.8. Since release 5.0, phpMyAdmin supports only PHP 7.1 and newer. Since release 5.2, phpMyAdmin supports only PHP 7.2 and newer. +Since release 6.0, phpMyAdmin supports only PHP 8.1 and newer. .. _faq1_32: diff --git a/doc/require.rst b/doc/require.rst index 6d7a5b8ff6..5b72cae10f 100644 --- a/doc/require.rst +++ b/doc/require.rst @@ -12,7 +12,7 @@ web server (such as Apache, nginx, :term:`IIS`) to install phpMyAdmin's files in PHP --- -* You need PHP 7.2.5 or newer, with ``session`` support, the Standard PHP Library +* You need PHP 8.1.0 or newer, with ``session`` support, the Standard PHP Library (SPL) extension, hash, ctype, and JSON support. * The ``mbstring`` extension (see :term:`mbstring`) is strongly recommended diff --git a/index.php b/index.php index 7c0f885ea7..7e8b28a420 100644 --- a/index.php +++ b/index.php @@ -12,8 +12,8 @@ if (! defined('ROOT_PATH')) { define('PHPMYADMIN', true); // phpcs:enable -if (PHP_VERSION_ID < 70205) { - die('

PHP 7.2.5+ is required.

Currently installed version is: ' . PHP_VERSION . '

'); +if (PHP_VERSION_ID < 80100) { + die('

PHP 8.1.0+ is required.

Currently installed version is: ' . PHP_VERSION . '

'); } require_once ROOT_PATH . 'libraries/constants.php'; diff --git a/libraries/classes/Dbal/MysqliStatement.php b/libraries/classes/Dbal/MysqliStatement.php index fc4ae59550..840d7a4ca1 100644 --- a/libraries/classes/Dbal/MysqliStatement.php +++ b/libraries/classes/Dbal/MysqliStatement.php @@ -7,9 +7,6 @@ namespace PhpMyAdmin\Dbal; use mysqli_stmt; use function count; -use function str_repeat; - -use const PHP_VERSION_ID; final class MysqliStatement implements Statement { @@ -33,20 +30,7 @@ final class MysqliStatement implements Statement return false; } - if (PHP_VERSION_ID >= 80100) { - /** - * @psalm-suppress TooManyArguments - * @phpstan-ignore-next-line - */ - return $this->statement->execute($params); - } - - $types = str_repeat('s', $paramCount); - if (! $this->statement->bind_param($types, ...$params)) { - return false; - } - - return $this->statement->execute(); + return $this->statement->execute($params); } /** diff --git a/libraries/classes/Util.php b/libraries/classes/Util.php index e39a79d279..ff5b6413db 100644 --- a/libraries/classes/Util.php +++ b/libraries/classes/Util.php @@ -674,11 +674,13 @@ class Util $date = (string) preg_replace( '@%[aA]@', + // phpcs:ignore Generic.PHP.DeprecatedFunctions $dayOfWeek[(int) @strftime('%w', (int) $timestamp)], $format ); $date = (string) preg_replace( '@%[bB]@', + // phpcs:ignore Generic.PHP.DeprecatedFunctions $month[(int) @strftime('%m', (int) $timestamp) - 1], $date ); @@ -695,6 +697,7 @@ class Util // Can return false on windows for Japanese language // See https://github.com/phpmyadmin/phpmyadmin/issues/15830 + // phpcs:ignore Generic.PHP.DeprecatedFunctions $ret = @strftime($date, (int) $timestamp); // Some OSes such as Win8.1 Traditional Chinese version did not produce UTF-8 // output here. See https://github.com/phpmyadmin/phpmyadmin/issues/10598 @@ -1594,6 +1597,7 @@ class Util } /* Do the replacement */ + // phpcs:ignore Generic.PHP.DeprecatedFunctions return strtr((string) @strftime($string), $replace); } diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 7ddd8fa3f6..7e211ed030 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -26,7 +26,7 @@ parameters: path: libraries/classes/Advisory/Advisor.php - - message: "#^Parameter \\#2 \\$args of function vsprintf expects array, mixed given\\.$#" + message: "#^Parameter \\#2 \\$values of function vsprintf expects array, mixed given\\.$#" count: 1 path: libraries/classes/Advisory/Advisor.php @@ -181,7 +181,7 @@ parameters: path: libraries/classes/Config.php - - message: "#^Parameter \\#1 \\$str of function rtrim expects string, mixed given\\.$#" + message: "#^Parameter \\#1 \\$string of function rtrim expects string, mixed given\\.$#" count: 1 path: libraries/classes/Config.php @@ -466,7 +466,7 @@ parameters: path: libraries/classes/Config/FormDisplay.php - - message: "#^Parameter \\#2 \\$pieces of function implode expects array, mixed given\\.$#" + message: "#^Parameter \\#2 \\$array of function implode expects array\\|null, mixed given\\.$#" count: 1 path: libraries/classes/Config/FormDisplay.php @@ -641,7 +641,7 @@ parameters: path: libraries/classes/Config/Settings.php - - message: "#^Parameter \\#1 \\$input of function array_keys expects array, mixed given\\.$#" + message: "#^Parameter \\#1 \\$array of function array_keys expects array, mixed given\\.$#" count: 1 path: libraries/classes/Config/Settings.php @@ -1256,7 +1256,7 @@ parameters: path: libraries/classes/Controllers/Database/Structure/AddPrefixTableController.php - - message: "#^Parameter \\#1 \\$var of function count expects array\\|Countable, mixed given\\.$#" + message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, mixed given\\.$#" count: 1 path: libraries/classes/Controllers/Database/Structure/AddPrefixTableController.php @@ -1276,7 +1276,7 @@ parameters: path: libraries/classes/Controllers/Database/Structure/CopyTableController.php - - message: "#^Parameter \\#1 \\$var of function count expects array\\|Countable, mixed given\\.$#" + message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, mixed given\\.$#" count: 1 path: libraries/classes/Controllers/Database/Structure/CopyTableController.php @@ -1326,12 +1326,12 @@ parameters: path: libraries/classes/Controllers/Database/Structure/CopyTableWithPrefixController.php - - message: "#^Parameter \\#1 \\$str of function mb_substr expects string, mixed given\\.$#" + message: "#^Parameter \\#1 \\$string of function mb_substr expects string, mixed given\\.$#" count: 1 path: libraries/classes/Controllers/Database/Structure/CopyTableWithPrefixController.php - - message: "#^Parameter \\#1 \\$var of function count expects array\\|Countable, mixed given\\.$#" + message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, mixed given\\.$#" count: 1 path: libraries/classes/Controllers/Database/Structure/CopyTableWithPrefixController.php @@ -1401,12 +1401,12 @@ parameters: path: libraries/classes/Controllers/Database/Structure/ReplacePrefixController.php - - message: "#^Parameter \\#1 \\$str of function mb_substr expects string, mixed given\\.$#" + message: "#^Parameter \\#1 \\$string of function mb_substr expects string, mixed given\\.$#" count: 2 path: libraries/classes/Controllers/Database/Structure/ReplacePrefixController.php - - message: "#^Parameter \\#1 \\$var of function count expects array\\|Countable, mixed given\\.$#" + message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, mixed given\\.$#" count: 1 path: libraries/classes/Controllers/Database/Structure/ReplacePrefixController.php @@ -1516,7 +1516,7 @@ parameters: path: libraries/classes/Controllers/Database/TrackingController.php - - message: "#^Parameter \\#1 \\$var of function count expects array\\|Countable, array\\\\>\\|string\\|null given\\.$#" + message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, array\\\\>\\|string\\|null given\\.$#" count: 2 path: libraries/classes/Controllers/Database/TrackingController.php @@ -1655,6 +1655,11 @@ parameters: count: 2 path: libraries/classes/Controllers/Import/ImportController.php + - + message: "#^Parameter \\#1 \\$separator of function explode expects non\\-empty\\-string, string given\\.$#" + count: 1 + path: libraries/classes/Controllers/Import/SimulateDmlController.php + - message: "#^Parameter \\#1 \\$id of static method PhpMyAdmin\\\\Import\\\\Ajax\\:\\:status\\(\\) expects string, mixed given\\.$#" count: 1 @@ -2111,7 +2116,7 @@ parameters: path: libraries/classes/Controllers/Table/FindReplaceController.php - - message: "#^Parameter \\#1 \\$str of function mb_strlen expects string, string\\|null given\\.$#" + message: "#^Parameter \\#1 \\$string of function mb_strlen expects string, string\\|null given\\.$#" count: 1 path: libraries/classes/Controllers/Table/GetFieldController.php @@ -2121,7 +2126,7 @@ parameters: path: libraries/classes/Controllers/Table/GetFieldController.php - - message: "#^Parameter \\#1 \\$var of function count expects array\\|Countable, mixed given\\.$#" + message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, mixed given\\.$#" count: 1 path: libraries/classes/Controllers/Table/IndexesController.php @@ -2236,7 +2241,7 @@ parameters: path: libraries/classes/Controllers/Table/Structure/PartitioningController.php - - message: "#^Parameter \\#1 \\$var of function count expects array\\|Countable, array\\\\|null given\\.$#" + message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, array\\\\|null given\\.$#" count: 1 path: libraries/classes/Controllers/Table/Structure/PartitioningController.php @@ -2246,7 +2251,7 @@ parameters: path: libraries/classes/Controllers/Table/Structure/ReservedWordCheckController.php - - message: "#^Parameter \\#1 \\$str of function trim expects string, mixed given\\.$#" + message: "#^Parameter \\#1 \\$string of function trim expects string, mixed given\\.$#" count: 2 path: libraries/classes/Controllers/Table/Structure/ReservedWordCheckController.php @@ -3370,6 +3375,21 @@ parameters: count: 1 path: libraries/classes/Dbal/DbalInterface.php + - + message: "#^Casting to int something that's already int\\.$#" + count: 1 + path: libraries/classes/Dbal/DbiMysqli.php + + - + message: "#^Method PhpMyAdmin\\\\Dbal\\\\DbiMysqli\\:\\:affectedRows\\(\\) should return int\\|numeric\\-string but returns int\\|string\\.$#" + count: 1 + path: libraries/classes/Dbal/DbiMysqli.php + + - + message: "#^Parameter \\#1 \\$haystack of function stripos expects string, string\\|null given\\.$#" + count: 1 + path: libraries/classes/Dbal/DbiMysqli.php + - message: "#^Call to function method_exists\\(\\) with mysqli_result and 'fetch_all' will always evaluate to true\\.$#" count: 3 @@ -3380,6 +3400,11 @@ parameters: count: 2 path: libraries/classes/Dbal/MysqliResult.php + - + message: "#^Method PhpMyAdmin\\\\Dbal\\\\MysqliResult\\:\\:numRows\\(\\) should return int\\|numeric\\-string but returns int\\|string\\.$#" + count: 1 + path: libraries/classes/Dbal/MysqliResult.php + - message: "#^Cannot access offset int\\<0, max\\> on mixed\\.$#" count: 2 @@ -3620,6 +3645,11 @@ parameters: count: 1 path: libraries/classes/Encoding.php + - + message: "#^Function recode_string not found\\.$#" + count: 1 + path: libraries/classes/Encoding.php + - message: "#^Method PhpMyAdmin\\\\Encoding\\:\\:convertString\\(\\) should return string but returns string\\|false\\.$#" count: 1 @@ -3640,6 +3670,11 @@ parameters: count: 1 path: libraries/classes/Encoding.php + - + message: "#^Used function recode_string not found\\.$#" + count: 1 + path: libraries/classes/Encoding.php + - message: "#^Method PhpMyAdmin\\\\Engines\\\\Bdb\\:\\:getVariables\\(\\) return type has no value type specified in iterable type array\\.$#" count: 1 @@ -3746,7 +3781,7 @@ parameters: path: libraries/classes/Error.php - - message: "#^Parameter \\#1 \\$callback of function set_error_handler expects \\(callable\\(int, string, string, int, array\\)\\: bool\\)\\|null, array\\{\\$this\\(PhpMyAdmin\\\\ErrorHandler\\), 'handleError'\\} given\\.$#" + message: "#^Parameter \\#1 \\$callback of function set_error_handler expects \\(callable\\(int, string, string, int\\)\\: bool\\)\\|null, array\\{\\$this\\(PhpMyAdmin\\\\ErrorHandler\\), 'handleError'\\} given\\.$#" count: 1 path: libraries/classes/ErrorHandler.php @@ -4735,23 +4770,73 @@ parameters: count: 2 path: libraries/classes/Http/ServerRequest.php - - - message: "#^Function imagefilledpolygon invoked with 3 parameters, 4 required\\.$#" - count: 1 - path: libraries/classes/Image/ImageWrapper.php - - message: "#^Method PhpMyAdmin\\\\Image\\\\ImageWrapper\\:\\:filledPolygon\\(\\) has parameter \\$points with no value type specified in iterable type array\\.$#" count: 1 path: libraries/classes/Image/ImageWrapper.php - - message: "#^Method PhpMyAdmin\\\\Image\\\\ImageWrapper\\:\\:height\\(\\) should return int but returns int\\|false\\.$#" + message: "#^Parameter \\#1 \\$dst_image of function imagecopyresampled expects GdImage, resource given\\.$#" count: 1 path: libraries/classes/Image/ImageWrapper.php - - message: "#^Method PhpMyAdmin\\\\Image\\\\ImageWrapper\\:\\:width\\(\\) should return int but returns int\\|false\\.$#" + message: "#^Parameter \\#1 \\$image of class PhpMyAdmin\\\\Image\\\\ImageWrapper constructor expects resource, GdImage given\\.$#" + count: 3 + path: libraries/classes/Image/ImageWrapper.php + + - + message: "#^Parameter \\#1 \\$image of function imagearc expects GdImage, resource given\\.$#" + count: 1 + path: libraries/classes/Image/ImageWrapper.php + + - + message: "#^Parameter \\#1 \\$image of function imagecolorallocate expects GdImage, resource given\\.$#" + count: 1 + path: libraries/classes/Image/ImageWrapper.php + + - + message: "#^Parameter \\#1 \\$image of function imagedestroy expects GdImage, resource given\\.$#" + count: 1 + path: libraries/classes/Image/ImageWrapper.php + + - + message: "#^Parameter \\#1 \\$image of function imagefilledpolygon expects GdImage, resource given\\.$#" + count: 2 + path: libraries/classes/Image/ImageWrapper.php + + - + message: "#^Parameter \\#1 \\$image of function imagejpeg expects GdImage, resource given\\.$#" + count: 1 + path: libraries/classes/Image/ImageWrapper.php + + - + message: "#^Parameter \\#1 \\$image of function imageline expects GdImage, resource given\\.$#" + count: 1 + path: libraries/classes/Image/ImageWrapper.php + + - + message: "#^Parameter \\#1 \\$image of function imagepng expects GdImage, resource given\\.$#" + count: 1 + path: libraries/classes/Image/ImageWrapper.php + + - + message: "#^Parameter \\#1 \\$image of function imagestring expects GdImage, resource given\\.$#" + count: 1 + path: libraries/classes/Image/ImageWrapper.php + + - + message: "#^Parameter \\#1 \\$image of function imagesx expects GdImage, resource given\\.$#" + count: 1 + path: libraries/classes/Image/ImageWrapper.php + + - + message: "#^Parameter \\#1 \\$image of function imagesy expects GdImage, resource given\\.$#" + count: 1 + path: libraries/classes/Image/ImageWrapper.php + + - + message: "#^Parameter \\#2 \\$src_image of function imagecopyresampled expects GdImage, resource given\\.$#" count: 1 path: libraries/classes/Image/ImageWrapper.php @@ -4880,6 +4965,11 @@ parameters: count: 1 path: libraries/classes/IndexColumn.php + - + message: "#^Else branch is unreachable because ternary operator condition is always true\\.$#" + count: 1 + path: libraries/classes/InsertEdit.php + - message: "#^Method PhpMyAdmin\\\\InsertEdit\\:\\:analyzeTableColumnsArray\\(\\) has parameter \\$column with no value type specified in iterable type array\\.$#" count: 1 @@ -5140,11 +5230,6 @@ parameters: count: 1 path: libraries/classes/InsertEdit.php - - - message: "#^Method PhpMyAdmin\\\\InsertEdit\\:\\:loadFirstRow\\(\\) should return array\\{PhpMyAdmin\\\\Dbal\\\\ResultInterface, array\\\\} but returns array\\{PhpMyAdmin\\\\Dbal\\\\ResultInterface, array\\\\|false\\}\\.$#" - count: 1 - path: libraries/classes/InsertEdit.php - - message: "#^Method PhpMyAdmin\\\\InsertEdit\\:\\:showEmptyResultMessageOrSetUniqueCondition\\(\\) has parameter \\$rows with no value type specified in iterable type array\\.$#" count: 1 @@ -5201,17 +5286,12 @@ parameters: path: libraries/classes/InsertEdit.php - - message: "#^Parameter \\#1 \\$data of function bin2hex expects string, string\\|null given\\.$#" + message: "#^Parameter \\#1 \\$string of function bin2hex expects string, string\\|null given\\.$#" count: 1 path: libraries/classes/InsertEdit.php - - message: "#^Parameter \\#1 \\$str of function stripslashes expects string, mixed given\\.$#" - count: 1 - path: libraries/classes/InsertEdit.php - - - - message: "#^Parameter \\#1 \\$str of method PhpMyAdmin\\\\DatabaseInterface\\:\\:quoteString\\(\\) expects string, string\\|false given\\.$#" + message: "#^Parameter \\#1 \\$string of function stripslashes expects string, mixed given\\.$#" count: 1 path: libraries/classes/InsertEdit.php @@ -5235,6 +5315,11 @@ parameters: count: 1 path: libraries/classes/InsertEdit.php + - + message: "#^Strict comparison using \\!\\=\\= between string and false will always evaluate to true\\.$#" + count: 1 + path: libraries/classes/InsertEdit.php + - message: "#^Method PhpMyAdmin\\\\InternalRelations\\:\\:getInformationSchema\\(\\) return type has no value type specified in iterable type array\\.$#" count: 1 @@ -5486,7 +5571,7 @@ parameters: path: libraries/classes/Navigation/NavigationTree.php - - message: "#^Only numeric types are allowed in \\+, int\\<0, max\\>\\|false given on the left side\\.$#" + message: "#^Only numeric types are allowed in \\+, int\\|false given on the left side\\.$#" count: 2 path: libraries/classes/Navigation/NavigationTree.php @@ -5496,7 +5581,7 @@ parameters: path: libraries/classes/Navigation/NavigationTree.php - - message: "#^Parameter \\#1 \\$str1 of function strcasecmp expects string, string\\|null given\\.$#" + message: "#^Parameter \\#1 \\$string1 of function strcasecmp expects string, string\\|null given\\.$#" count: 1 path: libraries/classes/Navigation/NavigationTree.php @@ -5876,7 +5961,7 @@ parameters: path: libraries/classes/Plugins.php - - message: "#^Parameter \\#2 \\$str2 of function strcmp expects string, class\\-string\\|false given\\.$#" + message: "#^Parameter \\#2 \\$string2 of function strcmp expects string, class\\-string\\|false given\\.$#" count: 1 path: libraries/classes/Plugins.php @@ -6161,12 +6246,12 @@ parameters: path: libraries/classes/Plugins/Export/ExportSql.php - - message: "#^Parameter \\#1 \\$str of function strtoupper expects string, mixed given\\.$#" + message: "#^Parameter \\#1 \\$str of static method PhpMyAdmin\\\\SqlParser\\\\Context\\:\\:escape\\(\\) expects array\\\\|string, string\\|null given\\.$#" count: 1 path: libraries/classes/Plugins/Export/ExportSql.php - - message: "#^Parameter \\#1 \\$str of static method PhpMyAdmin\\\\SqlParser\\\\Context\\:\\:escape\\(\\) expects array\\\\|string, string\\|null given\\.$#" + message: "#^Parameter \\#1 \\$string of function strtoupper expects string, mixed given\\.$#" count: 1 path: libraries/classes/Plugins/Export/ExportSql.php @@ -6441,7 +6526,7 @@ parameters: path: libraries/classes/Plugins/Import/ImportMediawiki.php - - message: "#^Parameter \\#1 \\$str of function trim expects string, mixed given\\.$#" + message: "#^Parameter \\#1 \\$string of function trim expects string, mixed given\\.$#" count: 1 path: libraries/classes/Plugins/Import/ImportMediawiki.php @@ -6556,7 +6641,7 @@ parameters: path: libraries/classes/Plugins/Import/ImportXml.php - - message: "#^Parameter \\#1 \\$str1 of function strcmp expects string, array\\\\|string\\>\\|string given\\.$#" + message: "#^Parameter \\#1 \\$string1 of function strcmp expects string, array\\\\|string\\>\\|string given\\.$#" count: 1 path: libraries/classes/Plugins/Import/ImportXml.php @@ -7620,18 +7705,18 @@ parameters: count: 1 path: libraries/classes/Server/Privileges.php - - - message: "#^Parameter \\#1 \\$str of function mb_substr expects string, string\\|null given\\.$#" - count: 3 - path: libraries/classes/Server/Privileges.php - - message: "#^Parameter \\#1 \\$str of method PhpMyAdmin\\\\DatabaseInterface\\:\\:quoteString\\(\\) expects string, string\\|null given\\.$#" count: 2 path: libraries/classes/Server/Privileges.php - - message: "#^Parameter \\#2 \\$str of function explode expects string, string\\|null given\\.$#" + message: "#^Parameter \\#1 \\$string of function mb_substr expects string, string\\|null given\\.$#" + count: 3 + path: libraries/classes/Server/Privileges.php + + - + message: "#^Parameter \\#2 \\$string of function explode expects string, string\\|null given\\.$#" count: 3 path: libraries/classes/Server/Privileges.php @@ -7881,12 +7966,12 @@ parameters: path: libraries/classes/Server/Status/Monitor.php - - message: "#^Parameter \\#1 \\$str of function mb_strlen expects string, string\\|null given\\.$#" + message: "#^Parameter \\#1 \\$string of function mb_strlen expects string, string\\|null given\\.$#" count: 4 path: libraries/classes/Server/Status/Monitor.php - - message: "#^Parameter \\#1 \\$str of function mb_substr expects string, string\\|null given\\.$#" + message: "#^Parameter \\#1 \\$string of function mb_substr expects string, string\\|null given\\.$#" count: 3 path: libraries/classes/Server/Status/Monitor.php @@ -7921,12 +8006,12 @@ parameters: path: libraries/classes/Session.php - - message: "#^Parameter \\#1 \\$newid of function session_id expects string, mixed given\\.$#" + message: "#^Parameter \\#1 \\$id of function session_id expects string\\|null, mixed given\\.$#" count: 1 path: libraries/classes/Session.php - - message: "#^Parameter \\#1 \\$newname of function session_save_path expects string, mixed given\\.$#" + message: "#^Parameter \\#1 \\$path of function session_save_path expects string\\|null, mixed given\\.$#" count: 1 path: libraries/classes/Session.php @@ -8070,11 +8155,6 @@ parameters: count: 1 path: libraries/classes/Sql.php - - - message: "#^Parameter \\#1 \\$data of function bin2hex expects string, string\\|null given\\.$#" - count: 1 - path: libraries/classes/Sql.php - - message: "#^Parameter \\#1 \\$dtResult of method PhpMyAdmin\\\\Display\\\\Results\\:\\:getTable\\(\\) expects PhpMyAdmin\\\\Dbal\\\\ResultInterface, PhpMyAdmin\\\\Dbal\\\\ResultInterface\\|null given\\.$#" count: 1 @@ -8100,6 +8180,11 @@ parameters: count: 1 path: libraries/classes/Sql.php + - + message: "#^Parameter \\#1 \\$string of function bin2hex expects string, string\\|null given\\.$#" + count: 1 + path: libraries/classes/Sql.php + - message: "#^Parameter \\#1 \\$string of static method PhpMyAdmin\\\\Message\\:\\:notice\\(\\) expects string, mixed given\\.$#" count: 1 @@ -8401,17 +8486,17 @@ parameters: path: libraries/classes/Table.php - - message: "#^Parameter \\#1 \\$var of function count expects array\\|Countable, mixed given\\.$#" + message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, mixed given\\.$#" count: 1 path: libraries/classes/Table.php - - message: "#^Parameter \\#2 \\$search of function array_key_exists expects array, mixed given\\.$#" + message: "#^Parameter \\#2 \\$array of function array_key_exists expects array, mixed given\\.$#" count: 1 path: libraries/classes/Table.php - - message: "#^Parameter \\#2 \\$str of function explode expects string, mixed given\\.$#" + message: "#^Parameter \\#2 \\$string of function explode expects string, mixed given\\.$#" count: 1 path: libraries/classes/Table.php @@ -8446,7 +8531,7 @@ parameters: path: libraries/classes/Table/ColumnsDefinition.php - - message: "#^Parameter \\#2 \\$str of function explode expects string, mixed given\\.$#" + message: "#^Parameter \\#2 \\$string of function explode expects string, mixed given\\.$#" count: 1 path: libraries/classes/Table/ColumnsDefinition.php @@ -8455,11 +8540,6 @@ parameters: count: 2 path: libraries/classes/Table/Search.php - - - message: "#^Parameter \\#1 \\$str of function trim expects string, mixed given\\.$#" - count: 1 - path: libraries/classes/Table/Search.php - - message: "#^Parameter \\#1 \\$str of method PhpMyAdmin\\\\DatabaseInterface\\:\\:escapeString\\(\\) expects string, mixed given\\.$#" count: 1 @@ -8471,7 +8551,12 @@ parameters: path: libraries/classes/Table/Search.php - - message: "#^Parameter \\#2 \\$str of function explode expects string, mixed given\\.$#" + message: "#^Parameter \\#1 \\$string of function trim expects string, mixed given\\.$#" + count: 1 + path: libraries/classes/Table/Search.php + + - + message: "#^Parameter \\#2 \\$string of function explode expects string, mixed given\\.$#" count: 2 path: libraries/classes/Table/Search.php @@ -8836,7 +8921,7 @@ parameters: path: libraries/classes/Tracking.php - - message: "#^Parameter \\#1 \\$var of function count expects array\\|Countable, mixed given\\.$#" + message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, mixed given\\.$#" count: 1 path: libraries/classes/Tracking.php @@ -9090,18 +9175,18 @@ parameters: count: 1 path: libraries/classes/Utils/FormatConverter.php - - - message: "#^Parameter \\#1 \\$data of function bin2hex expects string, mixed given\\.$#" - count: 1 - path: libraries/classes/Utils/FormatConverter.php - - message: "#^Parameter \\#1 \\$haystack of function strpos expects string, mixed given\\.$#" count: 1 path: libraries/classes/Utils/FormatConverter.php - - message: "#^Parameter \\#1 \\$ip_address of function inet_pton expects string, mixed given\\.$#" + message: "#^Parameter \\#1 \\$ip of function inet_pton expects string, mixed given\\.$#" + count: 1 + path: libraries/classes/Utils/FormatConverter.php + + - + message: "#^Parameter \\#1 \\$string of function bin2hex expects string, mixed given\\.$#" count: 1 path: libraries/classes/Utils/FormatConverter.php @@ -9150,6 +9235,11 @@ parameters: count: 1 path: libraries/classes/VersionInformation.php + - + message: "#^Casting to string something that's already string\\.$#" + count: 1 + path: libraries/classes/ZipExtension.php + - message: "#^Method PhpMyAdmin\\\\ZipExtension\\:\\:createFile\\(\\) has parameter \\$data with no value type specified in iterable type array\\.$#" count: 1 @@ -9175,6 +9265,16 @@ parameters: count: 1 path: libraries/classes/ZipExtension.php + - + message: "#^Call to function method_exists\\(\\) with 'PHPUnit\\\\\\\\Framework\\\\\\\\TestCase' and 'assertFileDoesNotEx…' will always evaluate to true\\.$#" + count: 1 + path: test/classes/AbstractTestCase.php + + - + message: "#^Call to function method_exists\\(\\) with 'PHPUnit\\\\\\\\Framework\\\\\\\\TestCase' and 'assertMatchesRegula…' will always evaluate to true\\.$#" + count: 1 + path: test/classes/AbstractTestCase.php + - message: "#^Method PhpMyAdmin\\\\Tests\\\\AbstractTestCase\\:\\:callFunction\\(\\) has parameter \\$params with no value type specified in iterable type array\\.$#" count: 1 @@ -9296,7 +9396,7 @@ parameters: path: test/classes/Command/SetVersionCommandTest.php - - message: "#^Parameter \\#1 \\$array_arg of function sort expects TArray of array\\, mixed given\\.$#" + message: "#^Parameter \\#1 \\$array of function sort expects TArray of array\\, mixed given\\.$#" count: 2 path: test/classes/Command/TwigLintCommandTest.php @@ -11767,16 +11867,11 @@ parameters: - message: "#^Call to method PHPUnit\\\\Framework\\\\Assert\\:\\:assertIsInt\\(\\) with 0 will always evaluate to true\\.$#" - count: 1 + count: 2 path: test/classes/VersionTest.php - - message: "#^Call to method PHPUnit\\\\Framework\\\\Assert\\:\\:assertIsInt\\(\\) with 3 will always evaluate to true\\.$#" - count: 1 - path: test/classes/VersionTest.php - - - - message: "#^Call to method PHPUnit\\\\Framework\\\\Assert\\:\\:assertIsInt\\(\\) with 5 will always evaluate to true\\.$#" + message: "#^Call to method PHPUnit\\\\Framework\\\\Assert\\:\\:assertIsInt\\(\\) with 6 will always evaluate to true\\.$#" count: 1 path: test/classes/VersionTest.php diff --git a/psalm-baseline.xml b/psalm-baseline.xml index fa8566d251..b8bad9b59d 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -238,9 +238,6 @@ - - $optionalParams - $GLOBALS['cfg']['Server']['controlpass'] $GLOBALS['cfg']['Server']['controluser'] @@ -4652,9 +4649,10 @@ $itemName $itemName - + $_POST['item_comment'] $_POST['item_definer'] + $_POST['item_definer'] $_POST['item_ends'] $_POST['item_execute_at'] $_POST['item_name'] @@ -5112,7 +5110,7 @@ $params['dir'][$i] - + $_GET['item_name'] $_GET['item_name'] $_GET['item_name'] @@ -5131,6 +5129,7 @@ $_POST['item_returnopts_text'] $_POST['item_type'] $itemDefiner + $itemDefiner $itemReturnType $itemReturnType $itemReturnType @@ -5319,7 +5318,8 @@ $itemName $itemName - + + $_POST['item_definer'] $_POST['item_definer'] $_POST['item_name'] $_POST['item_original_name'] @@ -5520,12 +5520,14 @@ $statementInfo->statement->expr $statementInfo->statement->where - + $_SESSION['tmpval']['max_rows'] $_SESSION['tmpval']['pos'] / $_SESSION['tmpval']['max_rows'] $_SESSION['tmpval']['query'] $_SESSION['tmpval']['query'] $clause + $clause + $clause $clauseIsUnique $clauseIsUnique $colOrder @@ -7150,6 +7152,24 @@ + + $image + $image + $image + $sourceImage->getImage() + $this->image + $this->image + $this->image + $this->image + $this->image + $this->image + $this->image + $this->image + $this->image + $this->image + $this->image + $this->image + imagefilledpolygon($this->image, $points, $color) @@ -7400,6 +7420,9 @@ + + $column['Default'] + $urlParams @@ -7602,6 +7625,9 @@ (int) $GLOBALS['cfg']['InsertRows'] + + $textDefault !== false + @@ -8810,6 +8836,9 @@ $sessionCookieParams['secure'] $single_signon_cfgupdate + + $sessionCookieParams + $GLOBALS['cfg']['Server']['host'] $GLOBALS['cfg']['Server']['port'] @@ -13693,6 +13722,12 @@ $newData[$newName] $value + + (string) substr($zdata, 0, strlen($zdata) - 4) + + + array + @@ -13796,6 +13831,9 @@ + + withConsecutive + $filesFound $filesInfos @@ -13809,6 +13847,11 @@ $filesInfos + + + withConsecutive + + assertFalse @@ -13892,6 +13935,14 @@ $this->sessionID + + + withConsecutive + withConsecutive + withConsecutive + withConsecutive + + assertSame @@ -13916,7 +13967,16 @@ assertSame + + + withConsecutive + + + + expectError + expectErrorMessage + $v @@ -14748,6 +14808,14 @@ array + + + expectError + expectError + expectErrorMessage + expectErrorMessage + + assertIsArray @@ -15025,6 +15093,10 @@ + + withConsecutive + withConsecutive + $GLOBALS['sql_constraints'] @@ -15240,8 +15312,16 @@ assertIsArray + + + withConsecutive + withConsecutive + withConsecutive + withConsecutive + + - + escapeString escapeString escapeString @@ -15249,6 +15329,7 @@ escapeString escapeString escapeString + withConsecutive $real_sql_query @@ -15472,6 +15553,9 @@ + + withConsecutive + array array @@ -15534,6 +15618,12 @@ + + withConsecutive + withConsecutive + withConsecutive + withConsecutive + testGetMySQLDocuURL @@ -15646,6 +15736,12 @@ + + withConsecutive + withConsecutive + withConsecutive + withConsecutive + $returnValues[] diff --git a/setup/index.php b/setup/index.php index a8b328d62e..d9cca544b9 100644 --- a/setup/index.php +++ b/setup/index.php @@ -12,8 +12,8 @@ if (! defined('ROOT_PATH')) { define('PHPMYADMIN', true); // phpcs:enable -if (PHP_VERSION_ID < 70205) { - die('

PHP 7.2.5+ is required.

Currently installed version is: ' . PHP_VERSION . '

'); +if (PHP_VERSION_ID < 80100) { + die('

PHP 8.1.0+ is required.

Currently installed version is: ' . PHP_VERSION . '

'); } require_once ROOT_PATH . 'libraries/constants.php'; diff --git a/test/classes/EnvironmentTest.php b/test/classes/EnvironmentTest.php index 97df64cd2f..7b95a9a7cc 100644 --- a/test/classes/EnvironmentTest.php +++ b/test/classes/EnvironmentTest.php @@ -19,8 +19,8 @@ class EnvironmentTest extends AbstractTestCase public function testPhpVersion(): void { $this->assertTrue( - version_compare('7.2.5', PHP_VERSION, '<='), - 'phpMyAdmin requires PHP 7.2.5 or above' + version_compare('8.1.0', PHP_VERSION, '<='), + 'phpMyAdmin requires PHP 8.1.0 or above' ); } }