예제 #1
0
 /**
  * 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;
 }
예제 #3
0
파일: Module.php 프로젝트: gridguyz/share
 /**
  * Is module loaded
  *
  * @param   string  $module
  * @return  bool
  */
 protected function isModuleLoaded($module)
 {
     return in_array($module, $this->moduleManager->getModules());
 }