Create ImportFormat enum
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
This commit is contained in:
parent
5bfceae710
commit
8c513212b8
@ -2592,7 +2592,7 @@ parameters:
|
||||
|
||||
-
|
||||
message: "#^Cannot access offset 'message' on mixed\\.$#"
|
||||
count: 7
|
||||
count: 6
|
||||
path: src/Controllers/Import/ImportController.php
|
||||
|
||||
-
|
||||
|
||||
@ -8648,6 +8648,11 @@
|
||||
<code><![CDATA[string[]]]></code>
|
||||
</PossiblyUnusedReturnValue>
|
||||
</file>
|
||||
<file src="src/Plugins/Import/ImportFormat.php">
|
||||
<PossiblyUnusedMethod>
|
||||
<code><![CDATA[getClassName]]></code>
|
||||
</PossiblyUnusedMethod>
|
||||
</file>
|
||||
<file src="src/Plugins/Import/ImportLdi.php">
|
||||
<DeprecatedMethod>
|
||||
<code><![CDATA[Config::getInstance()]]></code>
|
||||
|
||||
@ -20,8 +20,7 @@ use PhpMyAdmin\Import\Import;
|
||||
use PhpMyAdmin\Import\ImportSettings;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\ParseAnalyze;
|
||||
use PhpMyAdmin\Plugins;
|
||||
use PhpMyAdmin\Plugins\ImportPlugin;
|
||||
use PhpMyAdmin\Plugins\Import\ImportFormat;
|
||||
use PhpMyAdmin\ResponseRenderer;
|
||||
use PhpMyAdmin\Sql;
|
||||
use PhpMyAdmin\Template;
|
||||
@ -29,10 +28,10 @@ use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
use PhpMyAdmin\Utils\ForeignKey;
|
||||
use Throwable;
|
||||
use Webmozart\Assert\Assert;
|
||||
|
||||
use function __;
|
||||
use function _ngettext;
|
||||
use function in_array;
|
||||
use function ini_get;
|
||||
use function ini_parse_quantity;
|
||||
use function ini_set;
|
||||
@ -187,7 +186,9 @@ final class ImportController extends AbstractController
|
||||
$this->response->addJSON('console_message_id', $consoleMessageId);
|
||||
}
|
||||
|
||||
if (! in_array($format, ['csv', 'ldi', 'mediawiki', 'ods', 'shp', 'sql', 'xml'], true)) {
|
||||
Assert::string($format);
|
||||
$importFormat = ImportFormat::tryFrom($format);
|
||||
if ($importFormat === null) {
|
||||
$this->response->setRequestStatus(false);
|
||||
$this->response->addHTML(Message::error(__('Incorrect format parameter'))->getDisplay());
|
||||
|
||||
@ -482,21 +483,8 @@ final class ImportController extends AbstractController
|
||||
$queriesToBeExecuted = [];
|
||||
|
||||
if (! $GLOBALS['error']) {
|
||||
/** @var ImportPlugin $importPlugin */
|
||||
$importPlugin = Plugins::getPlugin('import', $format, ImportSettings::$importType);
|
||||
if ($importPlugin == null) {
|
||||
$GLOBALS['message'] = Message::error(
|
||||
__('Could not load import plugins, please check your installation!'),
|
||||
);
|
||||
|
||||
$_SESSION['Import_message']['message'] = $GLOBALS['message']->getDisplay();
|
||||
|
||||
$this->response->setRequestStatus(false);
|
||||
$this->response->addJSON('message', $GLOBALS['message']->getDisplay());
|
||||
$this->response->addHTML($GLOBALS['message']->getDisplay());
|
||||
|
||||
return;
|
||||
}
|
||||
$GLOBALS['plugin_param'] = ImportSettings::$importType;
|
||||
$importPlugin = new ($importFormat->getClassName());
|
||||
|
||||
// Do the real import
|
||||
$defaultFkCheck = ForeignKey::handleDisableCheckInit();
|
||||
|
||||
32
src/Plugins/Import/ImportFormat.php
Normal file
32
src/Plugins/Import/ImportFormat.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Plugins\Import;
|
||||
|
||||
use PhpMyAdmin\Plugins\ImportPlugin;
|
||||
|
||||
enum ImportFormat: string
|
||||
{
|
||||
case Csv = 'csv';
|
||||
case Ldi = 'ldi';
|
||||
case Mediawiki = 'mediawiki';
|
||||
case Ods = 'ods';
|
||||
case Shp = 'shp';
|
||||
case Sql = 'sql';
|
||||
case Xml = 'xml';
|
||||
|
||||
/** @return class-string<ImportPlugin> */
|
||||
public function getClassName(): string
|
||||
{
|
||||
return match ($this) {
|
||||
ImportFormat::Csv => ImportCsv::class,
|
||||
ImportFormat::Ldi => ImportLdi::class,
|
||||
ImportFormat::Mediawiki => ImportMediawiki::class,
|
||||
ImportFormat::Ods => ImportOds::class,
|
||||
ImportFormat::Shp => ImportShp::class,
|
||||
ImportFormat::Sql => ImportSql::class,
|
||||
ImportFormat::Xml => ImportXml::class,
|
||||
};
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user