setName('featureflags:list'); $this->setDescription('List all available feature flags and their current state'); } protected function doExecute(): int { $featureFlagManager = StaticContainer::get(FeatureFlagManager::class); $rows = []; foreach (FeatureFlagFinder::findAll() as $featureFlag) { $state = $featureFlagManager->isFeatureActive(get_class($featureFlag)) ? 'enabled' : 'disabled'; if ($featureFlag instanceof ForcedFeatureFlagStateInterface) { $state .= ' (forced)'; } $rows[] = [$featureFlag->getName(), get_class($featureFlag), $state]; } if (empty($rows)) { $this->getOutput()->writeln('No feature flags found.'); return self::SUCCESS; } usort($rows, static function (array $a, array $b): int { return strcmp($a[0], $b[0]); }); $this->renderTable(['Name', 'Class', 'State'], $rows); return self::SUCCESS; } }