/** * Iterate over each module and publish its assets. * * @param InputInterface $input * @param OutputInterface $output */ protected function doPublish(InputInterface $input, OutputInterface $output) { $output->writeln('<info>Publishing module assets</info>'); $nothing = true; $moduleName = $input->getOption('module'); if ($moduleName) { $moduleNames = array($moduleName); } else { $moduleNames = $this->modules->getModules(); } $inflector = new CamelCaseToDash(); foreach ($moduleNames as $moduleName) { $source = $this->getPublicPath($moduleName); if ($source === false) { continue; } $output->writeln(" - <comment>{$moduleName}</comment>"); $basename = strtolower($inflector->filter($moduleName)); $this->publisher->publish($source, $basename); $nothing = false; } if ($nothing) { $output->writeln('Nothing to publish'); } }
/** * Create list of available API modules * * @return array */ public function createApiList() { $apigilityModules = []; $q = preg_quote('\\'); foreach ($this->moduleManager->getModules() as $moduleName) { $module = $this->moduleManager->getModule($moduleName); if ($module instanceof ApigilityProviderInterface) { $versionRegex = '#' . preg_quote($moduleName) . $q . 'V(?P<version>[^' . $q . ']+)' . $q . '#'; $versions = []; $serviceConfigs = []; if ($this->config['zf-rest']) { $serviceConfigs = array_merge($serviceConfigs, $this->config['zf-rest']); } if ($this->config['zf-rpc']) { $serviceConfigs = array_merge($serviceConfigs, $this->config['zf-rpc']); } foreach ($serviceConfigs as $serviceName => $serviceConfig) { if (!preg_match($versionRegex, $serviceName, $matches)) { continue; } $version = $matches['version']; if (!in_array($version, $versions)) { $versions[] = $version; } } $apigilityModules[] = ['name' => $moduleName, 'versions' => $versions]; } } return $apigilityModules; }
/** * Is module loaded * * @param string $module * @return bool */ protected function isModuleLoaded($module) { return in_array($module, $this->moduleManager->getModules()); }