Esempio n. 1
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $configurationLoader = new ConfigurationLoader('depfile.yml');
     if ($configurationLoader->hasConfiguration()) {
         $output->writeln('<error>depfile.yml already exists</error>');
         return 1;
     }
     $configurationLoader->dumpConfiguration();
     $output->writeln('depfile <info>dumped.</info>');
 }
Esempio n. 2
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     ini_set('memory_limit', -1);
     $this->printBanner($output);
     $configurationLoader = new ConfigurationLoader($input->getArgument('depfile'));
     if (!$configurationLoader->hasConfiguration()) {
         $this->printConfigMissingError($output, $configurationLoader);
         return 1;
     }
     $configuration = $configurationLoader->loadConfiguration();
     new ConsoleFormatter($this->dispatcher, $output);
     $parser = new NikicPhpParser();
     $astMap = $this->astRunner->createAstMapByFiles($parser, $this->dispatcher, $this->collectFiles($configuration));
     $dependencyResult = new DependencyResult();
     /** @var $dependencyEmitters DependencyEmitterInterface[] */
     $dependencyEmitters = [new InheritanceDependencyEmitter(), new BasicDependencyEmitter()];
     foreach ($dependencyEmitters as $dependencyEmitter) {
         $this->printEmitStart($output, $dependencyEmitter);
         $dependencyEmitter->applyDependencies($parser, $astMap, $dependencyResult);
     }
     $this->printEmitEnd($output);
     $this->printFlattenStart($output);
     (new DependencyInheritanceFlatter())->flattenDependencies($astMap, $dependencyResult);
     $this->printFlattenEnd($output);
     $classNameLayerResolver = new ClassNameLayerResolverCacheDecorator(new ClassNameLayerResolver($configuration, $astMap, $this->collectorFactory, $parser));
     $this->printCollectViolations($output);
     /** @var $violations RulesetEngine\RulesetViolation[] */
     $violations = $this->rulesetEngine->getViolations($dependencyResult, $classNameLayerResolver, $configuration->getRuleset());
     $this->printFormattingStart($output);
     foreach ($this->formatterFactory->getActiveFormatters($input) as $formatter) {
         try {
             $formatter->finish(new DependencyContext($astMap, $violations, $dependencyResult, $classNameLayerResolver), $output, $this->formatterFactory->getOutputFormatterInput($formatter, $input));
         } catch (\Exception $ex) {
             $this->printFormatterException($output, $formatter->getName(), $ex);
         }
     }
     return count($violations) ? 1 : 0;
 }