7 declare(strict_types=1);
15 use Symfony\Component\Console\Input\InputInterface;
16 use Symfony\Component\Console\Output\OutputInterface;
17 use Symfony\Component\Console\Input\InputArgument;
29 private $objectManagerProvider;
38 $this->objectManagerProvider = $objectManagerProvider;
39 parent::__construct();
47 $this->setName(
'module:status')
48 ->setDescription(
'Displays status of modules')
49 ->addArgument(
'module', InputArgument::OPTIONAL,
'Optional module name')
50 ->addOption(
'enabled',
null,
null,
'Print only enabled modules')
51 ->addOption(
'disabled',
null,
null,
'Print only disabled modules');
60 $moduleName = (string)$input->getArgument(
'module');
62 return $this->showSpecificModule($moduleName,
$output);
65 $onlyEnabled = $input->getOption(
'enabled');
67 return $this->showEnabledModules(
$output);
70 $onlyDisabled = $input->getOption(
'disabled');
72 return $this->showDisabledModules(
$output);
75 $output->writeln(
'<info>List of enabled modules:</info>');
76 $this->showEnabledModules(
$output);
79 $output->writeln(
"<info>List of disabled modules:</info>");
80 $this->showDisabledModules(
$output);
88 private function showSpecificModule(
string $moduleName, OutputInterface
$output)
90 $allModules = $this->getAllModules();
91 if (!in_array($moduleName, $allModules->getNames())) {
92 $output->writeln(
'<error>Module does not exist</error>');
96 $enabledModules = $this->getEnabledModules();
97 if (in_array($moduleName, $enabledModules->getNames())) {
98 $output->writeln(
'<info>Module is enabled</info>');
102 $output->writeln(
'<info>Module is disabled</info>');
103 return \Magento\Framework\Console\Cli::RETURN_SUCCESS;
109 private function showEnabledModules(OutputInterface
$output)
111 $enabledModules = $this->getEnabledModules();
112 $enabledModuleNames = $enabledModules->getNames();
113 if (count($enabledModuleNames) === 0) {
118 $output->writeln(join(
"\n", $enabledModuleNames));
119 return \Magento\Framework\Console\Cli::RETURN_SUCCESS;
125 private function showDisabledModules(OutputInterface
$output)
127 $disabledModuleNames = $this->getDisabledModuleNames();
128 if (count($disabledModuleNames) === 0) {
133 $output->writeln(join(
"\n", $disabledModuleNames));
134 return \Magento\Framework\Console\Cli::RETURN_SUCCESS;
140 private function getAllModules(): FullModuleList
142 return $this->objectManagerProvider->get()->create(FullModuleList::class);
148 private function getEnabledModules(): ModuleList
150 return $this->objectManagerProvider->get()->create(ModuleList::class);
156 private function getDisabledModuleNames(): array
158 $fullModuleList = $this->getAllModules();
159 $enabledModules = $this->getEnabledModules();
160 return array_diff($fullModuleList->getNames(), $enabledModules->getNames());
__construct(ObjectManagerProvider $objectManagerProvider)
execute(InputInterface $input, OutputInterface $output)