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>'); }
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; }