setName('extension:show') ->setDescription('Lists all extensions in the database and on the filesystem.') ; } protected function execute(InputInterface $input, OutputInterface $output) { $this->manager->load_extensions(); $all = array_keys($this->manager->all_available()); if (empty($all)) { $output->writeln('No extensions were found.'); return 3; } $enabled = array_keys($this->manager->all_enabled()); $this->print_extension_list($output, 'Enabled', $enabled); $output->writeln(''); $disabled = array_keys($this->manager->all_disabled()); $this->print_extension_list($output, 'Disabled', $disabled); $output->writeln(''); $purged = array_diff($all, $enabled, $disabled); $this->print_extension_list($output, 'Available', $purged); } protected function print_extension_list(OutputInterface $output, $type, array $extensions) { $output->writeln("$type:"); foreach ($extensions as $extension) { $output->writeln(" - $extension"); } } }