Merge pull request #19472 from MauricioFauth/lang-global-var-removal

Replace lang global var with Current::$lang prop
This commit is contained in:
Maurício Meneghini Fauth 2024-12-24 18:11:27 -03:00 committed by GitHub
commit 75e0042bb6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
65 changed files with 147 additions and 150 deletions

View File

@ -570,7 +570,7 @@ parameters:
-
message: '#^Loose comparison via "\!\=" is not allowed\.$#'
identifier: notEqual.notAllowed
count: 3
count: 2
path: src/Config.php
-
@ -2860,7 +2860,7 @@ parameters:
path: src/Controllers/HomeController.php
-
message: '#^Cannot access offset mixed on mixed\.$#'
message: '#^Cannot access offset string on mixed\.$#'
identifier: offsetAccess.nonOffsetAccessible
count: 1
path: src/Controllers/HomeController.php
@ -3276,7 +3276,7 @@ parameters:
-
message: '#^Loose comparison via "\!\=" is not allowed\.$#'
identifier: notEqual.notAllowed
count: 2
count: 1
path: src/Controllers/Preferences/ManageController.php
-
@ -8988,12 +8988,6 @@ parameters:
count: 1
path: src/Header.php
-
message: '#^Parameter \#2 \$params of method PhpMyAdmin\\Scripts\:\:addFile\(\) expects array\<string, string\>, array\<string, mixed\> given\.$#'
identifier: argument.type
count: 1
path: src/Header.php
-
message: '#^Binary operation "\." between non\-falsy\-string and mixed results in an error\.$#'
identifier: binaryOp.invalid
@ -9159,12 +9153,6 @@ parameters:
count: 1
path: src/Http/Middleware/DatabaseServerVersionChecking.php
-
message: '#^Cannot cast mixed to string\.$#'
identifier: cast.string
count: 1
path: src/Http/Middleware/LanguageAndThemeCookieSaving.php
-
message: '''
#^Call to deprecated method getInstance\(\) of class PhpMyAdmin\\Dbal\\DatabaseInterface\:
@ -9183,12 +9171,6 @@ parameters:
count: 1
path: src/Http/Middleware/RouteParsing.php
-
message: '#^Parameter \#2 \$value of method PhpMyAdmin\\Config\:\:setCookie\(\) expects string, mixed given\.$#'
identifier: argument.type
count: 1
path: src/Http/Middleware/SetupPageRedirection.php
-
message: '''
#^Call to deprecated method getInstance\(\) of class PhpMyAdmin\\Dbal\\DatabaseInterface\:
@ -9282,12 +9264,6 @@ parameters:
count: 2
path: src/Http/ServerRequest.php
-
message: '#^Loose comparison via "\=\=" is not allowed\.$#'
identifier: equal.notAllowed
count: 1
path: src/I18n/Language.php
-
message: '#^Binary operation "\." between mixed and ''/'' results in an error\.$#'
identifier: binaryOp.invalid
@ -9321,12 +9297,6 @@ parameters:
count: 1
path: src/I18n/LanguageManager.php
-
message: '#^Parameter \#1 \$string of function strtolower expects string, mixed given\.$#'
identifier: argument.type
count: 1
path: src/I18n/LanguageManager.php
-
message: '#^Parameter \#2 \$path of function _bindtextdomain expects string, mixed given\.$#'
identifier: argument.type
@ -17463,7 +17433,7 @@ parameters:
-
message: '#^Construct empty\(\) is not allowed\. Use more strict comparison\.$#'
identifier: empty.notAllowed
count: 4
count: 2
path: src/Url.php
-

View File

@ -1555,7 +1555,7 @@
<code><![CDATA[$this->config->get('TempDir')]]></code>
</MixedArgument>
<MixedArrayAccess>
<code><![CDATA[$GLOBALS['language_stats'][$GLOBALS['lang']]]]></code>
<code><![CDATA[$GLOBALS['language_stats'][Current::$lang]]]></code>
</MixedArrayAccess>
<MixedArrayOffset>
<code><![CDATA[$config->settings['Servers'][Current::$server]]]></code>
@ -1566,9 +1566,6 @@
<PossiblyNullArgument>
<code><![CDATA[$this->config->get('TempDir')]]></code>
</PossiblyNullArgument>
<PossiblyNullArrayOffset>
<code><![CDATA[$GLOBALS['language_stats']]]></code>
</PossiblyNullArrayOffset>
<RiskyTruthyFalsyComparison>
<code><![CDATA[empty($_REQUEST['access_time'])]]></code>
<code><![CDATA[empty($config->selectedServer['verbose'])]]></code>
@ -5552,11 +5549,6 @@
<code><![CDATA[DatabaseInterface::getInstance()]]></code>
</DeprecatedMethod>
</file>
<file src="src/Http/Middleware/LanguageAndThemeCookieSaving.php">
<RedundantCast>
<code><![CDATA[(string) $GLOBALS['lang']]]></code>
</RedundantCast>
</file>
<file src="src/Http/Middleware/ProfilingChecking.php">
<DeprecatedMethod>
<code><![CDATA[DatabaseInterface::getInstance()]]></code>
@ -10137,8 +10129,6 @@
</MixedAssignment>
<RiskyTruthyFalsyComparison>
<code><![CDATA[! Config::getInstance()->get('URLQueryEncryption')]]></code>
<code><![CDATA[empty($GLOBALS['lang'])]]></code>
<code><![CDATA[empty($GLOBALS['lang'])]]></code>
<code><![CDATA[empty($config->getCookie('pma_lang'))]]></code>
<code><![CDATA[empty($config->getCookie('pma_lang'))]]></code>
</RiskyTruthyFalsyComparison>

View File

@ -488,11 +488,11 @@ class Config
if ($this->issetCookie('pma_lang') || isset($_POST['lang'])) {
if (
(! isset($configData['lang'])
&& $GLOBALS['lang'] !== 'en')
&& Current::$lang !== 'en')
|| isset($configData['lang'])
&& $GLOBALS['lang'] != $configData['lang']
&& Current::$lang !== $configData['lang']
) {
$this->setUserValue(null, 'lang', $GLOBALS['lang'], 'en');
$this->setUserValue(null, 'lang', Current::$lang, 'en');
}
} elseif (isset($configData['lang'])) {
$languageManager = LanguageManager::getInstance();

View File

@ -394,8 +394,6 @@ final class HomeController implements InvocableController
private function checkLanguageStats(): void
{
$GLOBALS['lang'] ??= null;
/**
* Warning about incomplete translations.
*
@ -409,8 +407,8 @@ final class HomeController implements InvocableController
include ROOT_PATH . 'app/language_stats.inc.php';
$config = Config::getInstance();
if (
! isset($GLOBALS['language_stats'][$GLOBALS['lang']])
|| $GLOBALS['language_stats'][$GLOBALS['lang']] >= $config->settings['TranslationWarningThreshold']
! isset($GLOBALS['language_stats'][Current::$lang])
|| $GLOBALS['language_stats'][Current::$lang] >= $config->settings['TranslationWarningThreshold']
) {
return;
}

View File

@ -10,6 +10,7 @@ use PhpMyAdmin\Config\Forms\User\UserFormList;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\File;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\Response;
@ -59,7 +60,6 @@ final class ManageController implements InvocableController
public function __invoke(ServerRequest $request): Response
{
$GLOBALS['error'] ??= null;
$GLOBALS['lang'] ??= null;
$GLOBALS['query'] ??= null;
$route = $request->getRoute();
@ -194,7 +194,7 @@ final class ManageController implements InvocableController
$this->themeManager->setThemeCookie();
}
if (isset($configuration['lang']) && $configuration['lang'] != $GLOBALS['lang']) {
if (isset($configuration['lang']) && $configuration['lang'] !== Current::$lang) {
$redirectParams['lang'] = $configuration['lang'];
}

View File

@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Setup;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Current;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
@ -39,7 +40,7 @@ final class ConfigController implements InvocableController
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_NOT_FOUND);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => __('Configuration already exists, setup is disabled!'),
]));
}

View File

@ -8,6 +8,7 @@ use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Config;
use PhpMyAdmin\Config\Forms\Setup\SetupFormList;
use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Current;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
@ -40,7 +41,7 @@ final class FormController implements InvocableController
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_NOT_FOUND);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => __('Configuration already exists, setup is disabled!'),
]));
}
@ -57,7 +58,7 @@ final class FormController implements InvocableController
$formClass = SetupFormList::get($formSet);
if ($formClass === null) {
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => __('Incorrect form specified!'),
]));
}

View File

@ -8,6 +8,7 @@ use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Config;
use PhpMyAdmin\Config\ServerConfigChecks;
use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Current;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
@ -43,7 +44,7 @@ final class HomeController implements InvocableController
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_NOT_FOUND);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => __('Configuration already exists, setup is disabled!'),
]));
}

View File

@ -7,6 +7,7 @@ namespace PhpMyAdmin\Controllers\Setup;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Config;
use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Current;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
@ -37,7 +38,7 @@ final class ServerDestroyController implements InvocableController
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_NOT_FOUND);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => __('Configuration already exists, setup is disabled!'),
]));
}

View File

@ -8,6 +8,7 @@ use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Config;
use PhpMyAdmin\Config\Forms\Setup\ServersForm;
use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Current;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
@ -40,7 +41,7 @@ final class ServersController implements InvocableController
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_NOT_FOUND);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => __('Configuration already exists, setup is disabled!'),
]));
}

View File

@ -9,6 +9,7 @@ use PhpMyAdmin\Config;
use PhpMyAdmin\Config\Forms\Setup\ConfigForm;
use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
@ -38,7 +39,7 @@ final class ShowConfigController implements InvocableController
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_NOT_FOUND);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => __('Configuration already exists, setup is disabled!'),
]));
}

View File

@ -9,6 +9,7 @@ use PhpMyAdmin\Config;
use PhpMyAdmin\Config\Validator;
use PhpMyAdmin\Controllers\InvocableController;
use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
@ -41,7 +42,7 @@ final class ValidateController implements InvocableController
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_NOT_FOUND);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => __('Configuration already exists, setup is disabled!'),
]));
}

View File

@ -79,8 +79,8 @@ class Core
$phpDocLanguages = ['pt_BR', 'zh_CN', 'fr', 'de', 'ja', 'ru', 'es', 'tr'];
$lang = 'en';
if (isset($GLOBALS['lang']) && in_array($GLOBALS['lang'], $phpDocLanguages, true)) {
$lang = $GLOBALS['lang'] === 'zh_CN' ? 'zh' : $GLOBALS['lang'];
if (in_array(Current::$lang, $phpDocLanguages, true)) {
$lang = Current::$lang === 'zh_CN' ? 'zh' : Current::$lang;
}
return self::linkURL('https://www.php.net/manual/' . $lang . '/' . $target);

View File

@ -12,4 +12,5 @@ final class Current
public static string $table = '';
public static string $sqlQuery = '';
public static Message|null $message = null;
public static string $lang = 'en';
}

View File

@ -171,7 +171,7 @@ class Encoding
*/
public static function canConvertKanji(): bool
{
return $GLOBALS['lang'] === 'ja';
return Current::$lang === 'ja';
}
/**

View File

@ -89,7 +89,7 @@ class Header
$this->scripts->addFile('vendor/js.cookie.min.js');
$this->scripts->addFile('vendor/jquery/jquery.validate.min.js');
$this->scripts->addFile('vendor/jquery/jquery-ui-timepicker-addon.js');
$this->scripts->addFile('index.php', ['route' => '/messages', 'l' => $GLOBALS['lang']]);
$this->scripts->addFile('index.php', ['route' => '/messages', 'l' => Current::$lang]);
$this->scripts->addFile('shared.js');
$this->scripts->addFile('menu_resizer.js');
$this->scripts->addFile('main.js');
@ -111,7 +111,7 @@ class Header
// Do not add any separator, JS code will decide
'common_query' => Url::getCommonRaw([], ''),
'opendb_url' => Util::getScriptNameForOption($this->config->settings['DefaultTabDatabase'], 'database'),
'lang' => $GLOBALS['lang'],
'lang' => Current::$lang,
'server' => Current::$server,
'table' => Current::$table,
'db' => Current::$database,
@ -276,7 +276,7 @@ class Header
$this->scripts->addFile('validator-messages.js');
return [
'lang' => $GLOBALS['lang'],
'lang' => Current::$lang,
'allow_third_party_framing' => $this->config->settings['AllowThirdPartyFraming'],
'base_dir' => $baseDir,
'theme_path' => $theme->getPath(),

View File

@ -9,6 +9,7 @@ use PhpMyAdmin\Config;
use PhpMyAdmin\Config\Settings\Server;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Container\ContainerBuilder;
use PhpMyAdmin\Current;
use PhpMyAdmin\Dbal\ConnectionType;
use PhpMyAdmin\Dbal\DatabaseInterface;
use PhpMyAdmin\Exceptions\AuthenticationFailure;
@ -53,7 +54,7 @@ final class Authentication implements MiddlewareInterface
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_INTERNAL_SERVER_ERROR);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => $exception->getMessage(),
]));
}
@ -70,7 +71,7 @@ final class Authentication implements MiddlewareInterface
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_INTERNAL_SERVER_ERROR);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => $exception->getMessage(),
]));
}

View File

@ -6,6 +6,7 @@ namespace PhpMyAdmin\Http\Middleware;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Config;
use PhpMyAdmin\Current;
use PhpMyAdmin\Exceptions\ConfigException;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Template;
@ -35,7 +36,7 @@ final class ConfigErrorAndPermissionChecking implements MiddlewareInterface
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_INTERNAL_SERVER_ERROR);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => $exception->getMessage(),
]));
}

View File

@ -6,6 +6,7 @@ namespace PhpMyAdmin\Http\Middleware;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Config;
use PhpMyAdmin\Current;
use PhpMyAdmin\Dbal\DatabaseInterface;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Template;
@ -36,7 +37,7 @@ final class DatabaseServerVersionChecking implements MiddlewareInterface
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_INTERNAL_SERVER_ERROR);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => sprintf(
__('You should upgrade to %s %s or later.'),
'MySQL',

View File

@ -6,6 +6,7 @@ namespace PhpMyAdmin\Http\Middleware;
use PhpMyAdmin\Config;
use PhpMyAdmin\Container\ContainerBuilder;
use PhpMyAdmin\Current;
use PhpMyAdmin\Theme\ThemeManager;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
@ -20,7 +21,7 @@ final class LanguageAndThemeCookieSaving implements MiddlewareInterface
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$this->config->setCookie('pma_lang', (string) $GLOBALS['lang']);
$this->config->setCookie('pma_lang', Current::$lang);
/** @var ThemeManager $themeManager */
$themeManager = ContainerBuilder::getContainer()->get(ThemeManager::class);
$themeManager->setThemeCookie();

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Http\Middleware;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Current;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Template;
use Psr\Http\Message\ResponseInterface;
@ -30,7 +31,7 @@ final class RequestProblemChecking implements MiddlewareInterface
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_INTERNAL_SERVER_ERROR);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => __('GLOBALS overwrite attempt'),
]));
}
@ -42,7 +43,7 @@ final class RequestProblemChecking implements MiddlewareInterface
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_INTERNAL_SERVER_ERROR);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => __('possible exploit'),
]));
}

View File

@ -6,6 +6,7 @@ namespace PhpMyAdmin\Http\Middleware;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Config;
use PhpMyAdmin\Current;
use PhpMyAdmin\Error\ErrorHandler;
use PhpMyAdmin\Exceptions\SessionHandlerException;
use PhpMyAdmin\Http\Factory\ResponseFactory;
@ -39,7 +40,7 @@ final class SessionHandling implements MiddlewareInterface
$response = $this->responseFactory->createResponse(StatusCodeInterface::STATUS_INTERNAL_SERVER_ERROR);
return $response->write($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => $exception->getMessage(),
]));
}

View File

@ -6,6 +6,7 @@ namespace PhpMyAdmin\Http\Middleware;
use PhpMyAdmin\Config;
use PhpMyAdmin\Container\ContainerBuilder;
use PhpMyAdmin\Current;
use PhpMyAdmin\Exceptions\ExitException;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\ServerRequest;
@ -53,7 +54,7 @@ final class SetupPageRedirection implements MiddlewareInterface
restore_error_handler();
// Save current language in a cookie, since it was not set in Common::run().
$this->config->setCookie('pma_lang', $GLOBALS['lang']);
$this->config->setCookie('pma_lang', Current::$lang);
$this->config->setSetup(true);
// allows for redirection even after sending some data

View File

@ -4,6 +4,8 @@ declare(strict_types=1);
namespace PhpMyAdmin\I18n;
use PhpMyAdmin\Current;
use function addcslashes;
use function in_array;
use function preg_match;
@ -102,7 +104,7 @@ class Language
*/
public function isActive(): bool
{
return $GLOBALS['lang'] == $this->code;
return Current::$lang === $this->code;
}
/**

View File

@ -6,7 +6,9 @@ namespace PhpMyAdmin\I18n;
use PhpMyAdmin\Config;
use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\Exceptions\UnsupportedLanguageCode;
use PhpMyAdmin\SqlParser\Translator;
use function __;
use function _bindtextdomain;
@ -873,7 +875,7 @@ class LanguageManager
*/
public function getCurrentLanguage(): Language
{
return $this->availableLanguages[strtolower($GLOBALS['lang'])];
return $this->availableLanguages[strtolower(Current::$lang)];
}
/**
@ -973,15 +975,17 @@ class LanguageManager
*/
public function activate(Language $language): void
{
$GLOBALS['lang'] = $language->getCode();
$languageCode = $language->getCode();
Current::$lang = $languageCode;
Translator::setLocale($languageCode);
// Set locale
_setlocale(0, $language->getCode());
_setlocale(0, $languageCode);
_bindtextdomain('phpmyadmin', LOCALE_PATH);
_textdomain('phpmyadmin');
// Set PHP locale as well
if (function_exists('setlocale')) {
setlocale(0, $language->getCode());
setlocale(0, $languageCode);
}
self::$textDirection = $language->isRTL() ? TextDirection::RightToLeft : TextDirection::LeftToRight;
@ -990,7 +994,7 @@ class LanguageManager
$GLOBALS['l'] = [
'a_meta_charset' => 'UTF-8',
'a_meta_dir' => self::$textDirection->value,
'a_meta_language' => $language->getCode(),
'a_meta_language' => $languageCode,
'w_page' => __('Page number:'),
];

View File

@ -176,7 +176,7 @@ class AuthenticationCookie extends AuthenticationPlugin
'has_servers' => $hasServers,
'server_options' => $serversOptions,
'server' => Current::$server,
'lang' => $GLOBALS['lang'],
'lang' => Current::$lang,
'has_captcha' => ! empty($config->settings['CaptchaApi'])
&& ! empty($config->settings['CaptchaRequestParam'])
&& ! empty($config->settings['CaptchaResponseParam'])

View File

@ -11,6 +11,7 @@ namespace PhpMyAdmin\Plugins\Auth;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Config;
use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\Dbal\DatabaseInterface;
use PhpMyAdmin\Exceptions\AuthenticationFailure;
use PhpMyAdmin\Http\Response;
@ -184,7 +185,7 @@ class AuthenticationHttp extends AuthenticationPlugin
if ($error && $GLOBALS['errno'] != 1045) {
$responseRenderer = ResponseRenderer::getInstance();
$responseRenderer->addHTML($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => $error,
]));

View File

@ -9,6 +9,7 @@ namespace PhpMyAdmin\Plugins\Auth;
use Fig\Http\Message\StatusCodeInterface;
use PhpMyAdmin\Config;
use PhpMyAdmin\Current;
use PhpMyAdmin\Exceptions\AuthenticationFailure;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\Response;
@ -45,7 +46,7 @@ class AuthenticationSignon extends AuthenticationPlugin
$config = Config::getInstance();
if (empty($config->selectedServer['SignonURL'])) {
$responseRenderer->addHTML($this->template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => 'You must set SignonURL!',
]));

View File

@ -17,6 +17,7 @@ use PhpMyAdmin\Controllers\Setup\MainController;
use PhpMyAdmin\Controllers\Setup\ShowConfigController;
use PhpMyAdmin\Controllers\Setup\ValidateController;
use PhpMyAdmin\Core;
use PhpMyAdmin\Current;
use PhpMyAdmin\Http\Factory\ResponseFactory;
use PhpMyAdmin\Http\Response;
use PhpMyAdmin\Http\ServerRequest;
@ -196,7 +197,7 @@ class Routing
$response = $responseFactory->createResponse(StatusCodeInterface::STATUS_NOT_FOUND);
return $response->write($template->render('error/generic', [
'lang' => $GLOBALS['lang'] ?? 'en',
'lang' => Current::$lang,
'error_message' => Sanitize::convertBBCode(sprintf(
__('Error 404! The page %s was not found.'),
'[code]' . htmlspecialchars($route) . '[/code]',

View File

@ -64,8 +64,8 @@ class Url
$params['server'] = Current::$server;
}
if (empty($config->getCookie('pma_lang')) && ! empty($GLOBALS['lang'])) {
$params['lang'] = $GLOBALS['lang'];
if (empty($config->getCookie('pma_lang')) && Current::$lang !== '') {
$params['lang'] = Current::$lang;
}
if (! is_array($skip)) {
@ -221,8 +221,8 @@ class Url
}
// Can be null when the user is missing an extension.
if (empty($config->getCookie('pma_lang')) && ! empty($GLOBALS['lang'])) {
$params['lang'] = $GLOBALS['lang'];
if (empty($config->getCookie('pma_lang')) && Current::$lang !== '') {
$params['lang'] = Current::$lang;
}
$query = self::buildHttpQuery($params, $encrypt);

View File

@ -78,6 +78,7 @@ abstract class AbstractTestCase extends TestCase
Current::$table = '';
Current::$sqlQuery = '';
Current::$message = null;
Current::$lang = 'en';
// Config before DBI
$this->setGlobalConfig();
@ -116,7 +117,7 @@ abstract class AbstractTestCase extends TestCase
protected function setLanguage(string $code = 'en'): void
{
$GLOBALS['lang'] = $code;
Current::$lang = $code;
$languageManager = LanguageManager::getInstance();
/* Ensure default language is active */
$languageEn = $languageManager->getLanguage($code);

View File

@ -5,6 +5,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Container;
use PhpMyAdmin\Container\ContainerBuilder;
use PhpMyAdmin\Current;
use PhpMyAdmin\Dbal\DatabaseInterface;
use PhpMyAdmin\Tests\AbstractTestCase;
use PHPUnit\Framework\Attributes\CoversClass;
@ -30,7 +31,7 @@ final class ContainerBuilderTest extends AbstractTestCase
#[DataProvider('servicesProvider')]
public function testContainerEntries(string $service): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
DatabaseInterface::$instance = $this->createDatabaseInterface();
$container = ContainerBuilder::getContainer();
self::assertNotNull($container->get($service));

View File

@ -48,7 +48,7 @@ final class ExportControllerTest extends AbstractTestCase
$dbi = $this->createDatabaseInterface($dbiDummy);
DatabaseInterface::$instance = $dbi;
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$config = Config::getInstance();
$config->selectServer('1');
$config->settings['Export']['sql_procedure_function'] = false;
@ -209,7 +209,7 @@ final class ExportControllerTest extends AbstractTestCase
$dbi = $this->createDatabaseInterface($dbiDummy);
DatabaseInterface::$instance = $dbi;
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$config = Config::getInstance();
$config->selectServer('1');
$config->settings['Export']['sql_procedure_function'] = false;

View File

@ -32,7 +32,10 @@ final class HomeControllerTest extends AbstractTestCase
$response = $controller($request);
self::assertSame(StatusCodeInterface::STATUS_FOUND, $response->getStatusCode());
self::assertSame('./index.php?route=/database/structure&db=test_db', $response->getHeaderLine('Location'));
self::assertSame(
'./index.php?route=/database/structure&db=test_db&lang=en',
$response->getHeaderLine('Location'),
);
self::assertSame('', (string) $response->getBody());
}
@ -50,7 +53,10 @@ final class HomeControllerTest extends AbstractTestCase
$response = $controller($request);
self::assertSame(StatusCodeInterface::STATUS_FOUND, $response->getStatusCode());
self::assertSame('./index.php?route=/sql&db=test_db&table=test_table', $response->getHeaderLine('Location'));
self::assertSame(
'./index.php?route=/sql&db=test_db&table=test_table&lang=en',
$response->getHeaderLine('Location'),
);
self::assertSame('', (string) $response->getBody());
}
}

View File

@ -40,7 +40,7 @@ class TableControllerTest extends AbstractTestCase
public function testOperationsController(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Current::$database = 'test_db';
Current::$table = 'test_table';

View File

@ -29,7 +29,7 @@ class GisVisualizationControllerTest extends AbstractTestCase
public function testGisVisualizationController(): void
{
Current::$server = 2;
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Current::$database = 'test_db';
Current::$table = 'test_table';
$_GET['sql_query'] = null;

View File

@ -33,7 +33,7 @@ class ImportControllerTest extends AbstractTestCase
{
Current::$database = 'test_db';
Current::$table = 'test_table';
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$config = Config::getInstance();
$config->selectedServer = $config->getSettings()->Servers[1]->asArray();
$_GET['format'] = 'xml';

View File

@ -25,7 +25,7 @@ class IndexRenameControllerTest extends AbstractTestCase
{
Current::$database = 'test_db';
Current::$table = 'test_table_index_rename';
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$dummyDbi = $this->createDbiDummy();
$dummyDbi->addSelectDb('test_db');

View File

@ -44,7 +44,7 @@ class SqlControllerTest extends AbstractTestCase
Current::$server = 2;
Current::$database = 'test_db';
Current::$table = 'test_table';
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$config = Config::getInstance();
$config->selectedServer = $config->getSettings()->Servers[1]->asArray();

View File

@ -44,7 +44,7 @@ class StructureControllerTest extends AbstractTestCase
{
Current::$database = 'test_db';
Current::$table = 'test_table';
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$config = Config::getInstance();
$config->selectedServer = $config->getSettings()->Servers[1]->asArray();
$config->selectedServer['DisableIS'] = true;

View File

@ -44,7 +44,7 @@ class DatabaseInterfaceTest extends AbstractTestCase
{
parent::tearDown();
unset($GLOBALS['lang']);
Current::$lang = '';
unset(Config::getInstance()->selectedServer['SessionTimeZone']);
Context::load();
}
@ -175,7 +175,7 @@ class DatabaseInterfaceTest extends AbstractTestCase
*/
public function testPostConnectShouldNotCallSetVersionIfNoVersion(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
LanguageManager::getInstance()->availableLanguages();
$mock = $this->getMockBuilder(DatabaseInterface::class)
@ -198,7 +198,7 @@ class DatabaseInterfaceTest extends AbstractTestCase
*/
public function testPostConnectShouldCallSetVersionOnce(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$versionQueryResult = [
'@@version' => '10.20.7-MariaDB-1:10.9.3+maria~ubu2204',
'@@version_comment' => 'mariadb.org binary distribution',
@ -236,7 +236,7 @@ class DatabaseInterfaceTest extends AbstractTestCase
bool $isMariaDb,
bool $isPercona,
): void {
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
LanguageManager::getInstance()->availableLanguages();
$mock = $this->getMockBuilder(DatabaseInterface::class)

View File

@ -6,6 +6,7 @@ namespace PhpMyAdmin\Tests\Error;
use Exception;
use PhpMyAdmin\Config;
use PhpMyAdmin\Current;
use PhpMyAdmin\Dbal\DatabaseInterface;
use PhpMyAdmin\Error\Error;
use PhpMyAdmin\Error\ErrorHandler;
@ -45,7 +46,7 @@ class ErrorHandlerTest extends AbstractTestCase
{
parent::setUp();
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
DatabaseInterface::$instance = $this->createDatabaseInterface();
$this->object = new ErrorHandler();
$_SESSION['errors'] = [];
@ -257,7 +258,7 @@ class ErrorHandlerTest extends AbstractTestCase
public function testHandleExceptionForDevEnv(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Config::getInstance()->set('environment', 'development');
$errorHandler = new ErrorHandler();
self::assertSame([], $errorHandler->getCurrentErrors());
@ -280,7 +281,7 @@ class ErrorHandlerTest extends AbstractTestCase
public function testHandleExceptionForProdEnv(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Config::getInstance()->set('environment', 'production');
$errorHandler = new ErrorHandler();
self::assertSame([], $errorHandler->getCurrentErrors());
@ -302,7 +303,7 @@ class ErrorHandlerTest extends AbstractTestCase
public function testAddErrorWithFatalError(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Config::getInstance()->set('environment', 'production');
$errorHandler = new ErrorHandler();
try {

View File

@ -228,7 +228,7 @@ SQL;
public function testGetPageLocationAndSaveMessageForServerExportWithError(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Current::$server = 2;
$_SESSION = [];
$dbi = $this->createDatabaseInterface();
@ -243,7 +243,7 @@ SQL;
public function testGetPageLocationAndSaveMessageForServerExportWithSuccess(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Current::$server = 2;
$_SESSION = [];
$dbi = $this->createDatabaseInterface();
@ -258,7 +258,7 @@ SQL;
public function testGetPageLocationAndSaveMessageForDatabaseExportWithError(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Current::$server = 2;
Current::$database = 'test_db';
$_SESSION = [];
@ -274,7 +274,7 @@ SQL;
public function testGetPageLocationAndSaveMessageForDatabaseExportWithSuccess(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Current::$server = 2;
Current::$database = 'test_db';
$_SESSION = [];
@ -290,7 +290,7 @@ SQL;
public function testGetPageLocationAndSaveMessageForTableExportWithError(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Current::$server = 2;
Current::$database = 'test_db';
Current::$table = 'test_table';
@ -310,7 +310,7 @@ SQL;
public function testGetPageLocationAndSaveMessageForTableExportWithSuccess(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Current::$server = 2;
Current::$database = 'test_db';
Current::$table = 'test_table';

View File

@ -32,10 +32,10 @@ class SecurityTest extends AbstractTestCase
{
self::assertSame(
'?db=%3Cscript%3Ealert%28%27%26%3D%21%3A%3B%27%29%3B%3C%2Fscr'
. 'ipt%3E&amp;table=%26mytable%3E1%3F&amp;server=12'
. 'ipt%3E&amp;table=%26mytable%3E1%3F&amp;server=12&amp;lang=en'
. "\n"
. '?db=%22%27%22%3E%3Ciframe+onload%3Dalert%281%29%3E%D1%88%D0%B5%D0%BB%D0%BB%D1%8B'
. '&amp;table=%26mytable%3E1%3F&amp;server=12&amp;%3Cscript%3E%26%3D=%3C%2Fscript%3E'
. '&amp;table=%26mytable%3E1%3F&amp;server=12&amp;%3Cscript%3E%26%3D=%3C%2Fscript%3E&amp;lang=en'
. "\n",
$this->template->render('test/add_data', [
'variable1' => Url::getCommon([
@ -58,14 +58,14 @@ class SecurityTest extends AbstractTestCase
]);
self::assertSame(
'?db=%3Cscript%3Ealert%28%27%26%3D%21%3A%3B%27%29%3B%3C%2Fscr'
. 'ipt%3E&table=%26mytable%3E1%3F&server=12',
. 'ipt%3E&table=%26mytable%3E1%3F&server=12&lang=en',
$url1,
);
self::assertSame(
$url1
. "\n"
. '?db=%22%27%22%3E%3Ciframe+onload%3Dalert%281%29%3E%D1%88%D0%B5%D0%BB%D0%BB%D1%8B'
. '&table=%26mytable%3E1%3F&server=12&%3Cscript%3E%26%3D=%3C%2Fscript%3E'
. '&table=%26mytable%3E1%3F&server=12&%3Cscript%3E%26%3D=%3C%2Fscript%3E&lang=en'
. "\n",
$this->template->render('test/raw_output', [
'variable1' => $url1,

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests;
use PhpMyAdmin\Current;
use PhpMyAdmin\Dbal\DatabaseInterface;
use PhpMyAdmin\ParseAnalyze;
use PhpMyAdmin\ResponseRenderer;
@ -21,7 +22,7 @@ class ParseAnalyzeTest extends AbstractTestCase
public function testSqlQuery(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
ResponseRenderer::getInstance()->setAjax(false);
$actual = ParseAnalyze::sqlQuery('SELECT * FROM `sakila`.`actor`', 'sakila_test');
@ -37,7 +38,7 @@ class ParseAnalyzeTest extends AbstractTestCase
public function testSqlQuery2(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
ResponseRenderer::getInstance()->setAjax(false);
$actual = ParseAnalyze::sqlQuery('SELECT `first_name`, `title` FROM `actor`, `film`', 'sakila');

View File

@ -39,7 +39,7 @@ class AuthenticationHttpTest extends AbstractTestCase
Config::getInstance()->settings['Servers'] = [];
Current::$database = 'db';
Current::$table = 'table';
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$GLOBALS['token_provided'] = true;
$GLOBALS['token_mismatch'] = false;
$this->object = new AuthenticationHttp();

View File

@ -7,6 +7,7 @@ namespace PhpMyAdmin\Tests\Plugins;
use PhpMyAdmin\Config;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\ConfigStorage\RelationParameters;
use PhpMyAdmin\Current;
use PhpMyAdmin\Dbal\DatabaseInterface;
use PhpMyAdmin\Exceptions\AuthenticationFailure;
use PhpMyAdmin\Exceptions\ExitException;
@ -28,7 +29,7 @@ final class AuthenticationPluginTest extends AbstractTestCase
/** @psalm-suppress InaccessibleProperty */
$config->config->debug->simple2fa = true;
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$dbiDummy = $this->createDbiDummy();
$dbiDummy->addResult(
// phpcs:ignore Generic.Files.LineLength.TooLong
@ -91,7 +92,7 @@ final class AuthenticationPluginTest extends AbstractTestCase
/** @psalm-suppress InaccessibleProperty */
$config->config->debug->simple2fa = true;
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$dbiDummy = $this->createDbiDummy();
$dbiDummy->addResult(
// phpcs:ignore Generic.Files.LineLength.TooLong

View File

@ -42,7 +42,7 @@ class ExportCsvTest extends AbstractTestCase
DatabaseInterface::$instance = $dbi;
Current::$database = '';
Current::$table = '';
$GLOBALS['lang'] = '';
Current::$lang = '';
$GLOBALS['csv_enclosed'] = null;
$GLOBALS['csv_separator'] = null;
$GLOBALS['save_filename'] = null;

View File

@ -69,7 +69,7 @@ class ExportHtmlwordTest extends AbstractTestCase
$GLOBALS['save_on_server'] = false;
Current::$database = '';
Current::$table = '';
$GLOBALS['lang'] = '';
Current::$lang = '';
Config::getInstance()->selectedServer['DisableIS'] = true;
}

View File

@ -50,7 +50,7 @@ class ExportMediawikiTest extends AbstractTestCase
$GLOBALS['save_on_server'] = false;
Current::$database = '';
Current::$table = '';
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$this->object = new ExportMediawiki(
new Relation($dbi),
new Export($dbi),

View File

@ -45,7 +45,7 @@ class ExportPhparrayTest extends AbstractTestCase
$GLOBALS['save_on_server'] = false;
Current::$database = '';
Current::$table = '';
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$this->object = new ExportPhparray(
new Relation($dbi),
new Export($dbi),

View File

@ -64,7 +64,7 @@ class ExportSqlTest extends AbstractTestCase
DatabaseInterface::$instance = $dbi;
Current::$database = '';
Current::$table = '';
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Config::getInstance()->selectedServer['DisableIS'] = true;
$GLOBALS['output_kanji_conversion'] = false;
$GLOBALS['buffer_needed'] = false;

View File

@ -67,7 +67,7 @@ class ExportTexytextTest extends AbstractTestCase
ExportPlugin::$singleTable = false;
Current::$database = '';
Current::$table = '';
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Config::getInstance()->selectedServer['DisableIS'] = true;
$this->object = new ExportTexytext(
new Relation($this->dbi),

View File

@ -44,7 +44,7 @@ class ExportYamlTest extends AbstractTestCase
$GLOBALS['save_on_server'] = false;
Current::$database = '';
Current::$table = '';
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$this->object = new ExportYaml(
new Relation($dbi),
new Export($dbi),

View File

@ -46,7 +46,7 @@ class SvgRelationSchemaTest extends AbstractTestCase
Current::$database = 'test_db';
Current::$table = '';
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
Config::getInstance()->selectedServer['DisableIS'] = true;
$this->object = new SvgRelationSchema(new Relation($dbi), DatabaseName::from('test_db'));

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests\Plugins\TwoFactor;
use PhpMyAdmin\Current;
use PhpMyAdmin\Dbal\DatabaseInterface;
use PhpMyAdmin\Http\ServerRequest;
use PhpMyAdmin\Plugins\TwoFactor\WebAuthn;
@ -42,7 +43,7 @@ class WebAuthnTest extends AbstractTestCase
{
(new ReflectionProperty(ResponseRenderer::class, 'instance'))->setValue(null, null);
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
DatabaseInterface::$instance = $this->createDatabaseInterface();
$uri = self::createStub(UriInterface::class);
@ -105,7 +106,7 @@ class WebAuthnTest extends AbstractTestCase
{
(new ReflectionProperty(ResponseRenderer::class, 'instance'))->setValue(null, null);
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
DatabaseInterface::$instance = $this->createDatabaseInterface();
$uri = self::createStub(UriInterface::class);

View File

@ -29,7 +29,7 @@ final class ResponseRendererTest extends AbstractTestCase
DatabaseInterface::$instance = $this->createDatabaseInterface();
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
}
public function testSetAjax(): void

View File

@ -4,6 +4,7 @@ declare(strict_types=1);
namespace PhpMyAdmin\Tests;
use PhpMyAdmin\Current;
use PhpMyAdmin\Sanitize;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
@ -38,15 +39,15 @@ class SanitizeTest extends AbstractTestCase
*/
public function testLink(): void
{
$lang = $GLOBALS['lang'];
$lang = Current::$lang;
unset($GLOBALS['lang']);
Current::$lang = '';
self::assertSame(
'<a href="index.php?route=/url&url=https%3A%2F%2Fwww.phpmyadmin.net%2F" target="target">link</a>',
Sanitize::convertBBCode('[a@https://www.phpmyadmin.net/@target]link[/a]'),
);
$GLOBALS['lang'] = $lang;
Current::$lang = $lang;
}
/**

View File

@ -55,7 +55,7 @@ class ScriptsTest extends AbstractTestCase
$actual,
);
self::assertStringContainsString(
'src="index.php?route=%2Fmessages&l=en&v=' . rawurlencode(Version::VERSION) . '"',
'src="index.php?route=%2Fmessages&l=en&v=' . rawurlencode(Version::VERSION) . '&lang=en"',
$actual,
);
self::assertStringContainsString(

View File

@ -8,6 +8,7 @@ use PhpMyAdmin\Config;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\ConfigStorage\RelationCleanup;
use PhpMyAdmin\ConfigStorage\RelationParameters;
use PhpMyAdmin\Current;
use PhpMyAdmin\Dbal\ConnectionType;
use PhpMyAdmin\Dbal\DatabaseInterface;
use PhpMyAdmin\Dbal\ResultInterface;
@ -267,7 +268,7 @@ class PrivilegesTest extends AbstractTestCase
public function testGetDataForChangeOrCopyUser(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$dummyDbi = $this->createDbiDummy();
// phpcs:disable Generic.Files.LineLength.TooLong
@ -1547,7 +1548,7 @@ class PrivilegesTest extends AbstractTestCase
public function testGetHtmlForUserOverview(): void
{
Config::getInstance()->selectedServer['DisableIS'] = false;
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$userPrivileges = new UserPrivileges(isReload: true);
$dummyDbi = $this->createDbiDummy();
@ -1702,7 +1703,7 @@ class PrivilegesTest extends AbstractTestCase
public function testGetHtmlForInitials(): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$dummyDbi = $this->createDbiDummy();
$dummyDbi->addResult('SELECT COUNT(*) FROM `mysql`.`user`', [[21]]);

View File

@ -138,7 +138,7 @@ class SqlQueryFormTest extends AbstractTestCase
public function testPMAGetHtmlForSqlQueryForm(): void
{
//Call the test function
$GLOBALS['lang'] = 'ja';
Current::$lang = 'ja';
$query = 'select * from PMA';
$html = $this->sqlQueryForm->getHtml('PMA_db', 'PMA_table', $query);
@ -175,6 +175,6 @@ class SqlQueryFormTest extends AbstractTestCase
Encoding::kanjiEncodingForm(),
$html,
);
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
}
}

View File

@ -15,6 +15,7 @@ use PhpMyAdmin\Bookmarks\BookmarkRepository;
use PhpMyAdmin\Config;
use PhpMyAdmin\ConfigStorage\Relation;
use PhpMyAdmin\Console;
use PhpMyAdmin\Current;
use PhpMyAdmin\Dbal\DatabaseInterface;
use PhpMyAdmin\Error\ErrorHandler;
use PhpMyAdmin\Footer;
@ -47,7 +48,7 @@ class ResponseRenderer extends \PhpMyAdmin\ResponseRenderer
*/
public function __construct()
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$config = Config::getInstance();
$config->selectedServer['pmadb'] = 'phpmyadmin';
$template = new Template($config);

View File

@ -52,7 +52,7 @@ class TrackingTest extends AbstractTestCase
Current::$database = 'PMA_db';
Current::$table = 'PMA_table';
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
$config = Config::getInstance();
$config->selectedServer['DisableIS'] = true;
$config->selectedServer['tracking_default_statements'] = 'DELETE';

View File

@ -319,7 +319,7 @@ class UserPreferencesTest extends AbstractTestCase
$responseStub = new ResponseRendererStub();
(new ReflectionProperty(ResponseRenderer::class, 'instance'))->setValue(null, $responseStub);
$GLOBALS['lang'] = '';
Current::$lang = '';
Current::$database = 'db';
Current::$table = 'table';

View File

@ -1329,7 +1329,7 @@ SQL;
#[DataProvider('dataProviderScriptNames')]
public function testGetScriptNameForOption(string $target, string $location, string $finalLink): void
{
$GLOBALS['lang'] = 'en';
Current::$lang = 'en';
self::assertSame(
$finalLink,
Util::getScriptNameForOption($target, $location),