Submit
Path:
~
/
home
/
sbfocnqg
/
public_html
/
myadmin
/
libraries
/
classes
/
Command
/
File Content:
SetVersionCommand.php
<?php declare(strict_types=1); namespace PhpMyAdmin\Command; use RangeException; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use function file_put_contents; use function preg_match; use function sprintf; final class SetVersionCommand extends Command { /** @var string */ protected static $defaultName = 'set-version'; /** @var string */ private static $generatedClassTemplate = <<<'PHP' <?php declare(strict_types=1); namespace PhpMyAdmin; use const VERSION_SUFFIX; /** * This class is generated by scripts/console. * * @see \PhpMyAdmin\Command\SetVersionCommand */ final class Version { // The VERSION_SUFFIX constant is defined at libraries/constants.php public const VERSION = '%1$u.%2$u.%3$u%4$s' . VERSION_SUFFIX; public const SERIES = '%1$u.%2$u'; public const MAJOR = %1$u; public const MINOR = %2$u; public const PATCH = %3$u; public const ID = %1$u%2$02u%3$02u; public const PRE_RELEASE_NAME = '%5$s'; public const IS_DEV = %6$s; } PHP; protected function configure(): void { $this->setDescription('Sets the version number'); $this->setHelp('This command generates the PhpMyAdmin\Version class based on the version number provided.'); $this->addArgument('version', InputArgument::REQUIRED, 'The version number'); } protected function execute(InputInterface $input, OutputInterface $output): int { /** @var string $version */ $version = $input->getArgument('version'); $generatedClass = $this->getGeneratedClass($version); if (! $this->writeGeneratedClassFile($generatedClass)) { return Command::FAILURE; } $output->writeln('PhpMyAdmin\Version class successfully generated!'); return Command::SUCCESS; } private function getGeneratedClass(string $version): string { // Do not allow any major below 5 $return = preg_match('/^([5-9]+)\.(\d{1,2})\.(\d{1,2})(-([a-z0-9]+))?$/', $version, $matches); if ($return === false || $return === 0) { throw new RangeException('The version number is in the wrong format: ' . $version); } return sprintf( self::$generatedClassTemplate, $matches[1], $matches[2], $matches[3], $matches[4] ?? '', $matches[5] ?? '', ($matches[5] ?? '') === 'dev' ? 'true' : 'false' ); } private function writeGeneratedClassFile(string $generatedClass): bool { $result = file_put_contents(ROOT_PATH . 'libraries/classes/Version.php', $generatedClass); return $result !== false; } }
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
CacheWarmupCommand.php
6623 bytes
0644
FixPoTwigCommand.php
2434 bytes
0644
SetVersionCommand.php
2840 bytes
0644
TwigLintCommand.php
8883 bytes
0644
WriteGitRevisionCommand.php
4759 bytes
0644
N4ST4R_ID | Naxtarrr