Merge pull request #19472 from MauricioFauth/lang-global-var-removal
Replace lang global var with Current::$lang prop
This commit is contained in:
commit
75e0042bb6
@ -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
|
||||
|
||||
-
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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'];
|
||||
}
|
||||
|
||||
|
||||
@ -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!'),
|
||||
]));
|
||||
}
|
||||
|
||||
@ -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!'),
|
||||
]));
|
||||
}
|
||||
|
||||
@ -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!'),
|
||||
]));
|
||||
}
|
||||
|
||||
@ -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!'),
|
||||
]));
|
||||
}
|
||||
|
||||
@ -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!'),
|
||||
]));
|
||||
}
|
||||
|
||||
@ -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!'),
|
||||
]));
|
||||
}
|
||||
|
||||
@ -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!'),
|
||||
]));
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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';
|
||||
}
|
||||
|
||||
@ -171,7 +171,7 @@ class Encoding
|
||||
*/
|
||||
public static function canConvertKanji(): bool
|
||||
{
|
||||
return $GLOBALS['lang'] === 'ja';
|
||||
return Current::$lang === 'ja';
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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(),
|
||||
|
||||
@ -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(),
|
||||
]));
|
||||
}
|
||||
|
||||
@ -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(),
|
||||
]));
|
||||
}
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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'),
|
||||
]));
|
||||
}
|
||||
|
||||
@ -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(),
|
||||
]));
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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:'),
|
||||
];
|
||||
|
||||
|
||||
@ -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'])
|
||||
|
||||
@ -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,
|
||||
]));
|
||||
|
||||
|
||||
@ -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!',
|
||||
]));
|
||||
|
||||
|
||||
@ -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]',
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@ -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';
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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();
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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&table=%26mytable%3E1%3F&server=12'
|
||||
. 'ipt%3E&table=%26mytable%3E1%3F&server=12&lang=en'
|
||||
. "\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/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,
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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),
|
||||
|
||||
@ -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),
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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),
|
||||
|
||||
@ -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),
|
||||
|
||||
@ -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'));
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -29,7 +29,7 @@ final class ResponseRendererTest extends AbstractTestCase
|
||||
|
||||
DatabaseInterface::$instance = $this->createDatabaseInterface();
|
||||
|
||||
$GLOBALS['lang'] = 'en';
|
||||
Current::$lang = 'en';
|
||||
}
|
||||
|
||||
public function testSetAjax(): void
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -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]]);
|
||||
|
||||
@ -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';
|
||||
}
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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';
|
||||
|
||||
@ -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';
|
||||
|
||||
|
||||
@ -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),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user