Submit
Path:
~
/
home
/
sbfocnqg
/
public_html
/
myadmin
/
libraries
/
classes
/
Command
/
File Content:
FixPoTwigCommand.php
<?php declare(strict_types=1); namespace PhpMyAdmin\Command; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use function file_get_contents; use function file_put_contents; use function intval; use function is_array; use function json_decode; use function preg_replace_callback; use const ROOT_PATH; final class FixPoTwigCommand extends Command { /** @var string|null */ protected static $defaultName = 'fix-po-twig'; private const POT_FILE = ROOT_PATH . 'po/phpmyadmin.pot'; private const REPLACE_FILE = ROOT_PATH . 'twig-templates/replace.json'; protected function configure(): void { $this->setDescription('Fixes POT file for Twig templates'); $this->setHelp( 'The <info>%command.name%</info> command fixes the Twig file name and line number in the' . ' POT file to match the Twig template and not the compiled Twig file.' ); } protected function execute(InputInterface $input, OutputInterface $output): int { $replaceFile = file_get_contents(self::REPLACE_FILE); if ($replaceFile === false) { return Command::FAILURE; } $replacements = json_decode($replaceFile, true); if (! is_array($replacements)) { return Command::FAILURE; } /* Read pot file */ $pot = file_get_contents(self::POT_FILE); if ($pot === false) { return Command::FAILURE; } /* Do the replacements */ $pot = preg_replace_callback( '@(twig-templates[0-9a-f/]*.php):([0-9]*)@', static function (array $matches) use ($replacements): string { $filename = $matches[1]; $line = intval($matches[2]); $replace = $replacements[$filename]; foreach ($replace[1] as $cacheLine => $result) { if ($line >= $cacheLine) { return $replace[0] . ':' . $result; } } return $replace[0] . ':0'; }, $pot ); if ($pot === null) { return Command::FAILURE; } if (file_put_contents(self::POT_FILE, $pot) === false) { return Command::FAILURE; } return Command::SUCCESS; } }
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