moduleHandler = $moduleHandler; $this->themeHandler = $themeHandler; $this->libraryDiscovery = $libraryDiscovery; $this->appRoot = $appRoot; parent::__construct(); } /** * {@inheritdoc} */ protected function configure() { $this ->setName('libraries:debug') ->setDescription($this->trans('commands.libraries.debug.description')) ->addArgument( 'group', InputArgument::OPTIONAL, $this->trans('commands.libraries.debug.options.name') ); } /** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $io = new DrupalStyle($input, $output); $group = $input->getArgument('group'); if (!$group) { $groups = $this->getAllLibraries(); $tableHeader = [ $this->trans('commands.libraries.debug.messages.name'), ]; $io->table($tableHeader, $groups, 'compact'); } else { $librariesData = $this->libraryDiscovery ->getLibrariesByExtension($group); foreach ($librariesData as $key => $libraries) { $io->comment($key); $io->writeln(Yaml::encode($libraries)); } } } private function getAllLibraries() { $modules = $this->moduleHandler->getModuleList(); $themes = $this->themeHandler->rebuildThemeData(); $extensions = array_merge($modules, $themes); $libraries = []; foreach ($extensions as $extensionName => $extension) { $libraryFile = $extension->getPath() . '/' . $extensionName . '.libraries.yml'; if (is_file($this->appRoot . '/' . $libraryFile)) { $libraries[$extensionName] = $this->libraryDiscovery->getLibrariesByExtension($extensionName); } } return array_keys($libraries); } }