setName('plugin:list'); $this->setDescription('List installed plugins.'); } protected function execute(InputInterface $input, OutputInterface $output) { $pluginManager = Manager::getInstance(); $plugins = $pluginManager->getInstalledPluginsName(); $plugins = array_map(function ($plugin) use ($pluginManager) { return array( '' . $plugin . '', $pluginManager->isPluginBundledWithCore($plugin) ? 'Core' : 'Optional', $pluginManager->isPluginActivated($plugin) ? 'Activated' : 'Not activated', ); }, $plugins); // Sort Core plugins first usort($plugins, function ($a, $b) { return strcmp($a[1], $b[1]); }); $table = new Table($output); $table ->setHeaders(array('Plugin', 'Core or optional?', 'Status')) ->setRows($plugins) ; $table->render(); } }