SensioLabs\Deptrac\Command\AnalyzeCommand::execute PHP Method

execute() protected method

protected execute ( Symfony\Component\Console\Input\InputInterface $input, Symfony\Component\Console\Output\OutputInterface $output )
$input Symfony\Component\Console\Input\InputInterface
$output Symfony\Component\Console\Output\OutputInterface
    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;
    }