/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $configFile = $input->getArgument(self::ARGUMENT_CONFIG); $output->writeln($this->getDescription() . PHP_EOL); // read config $output->writeln(CliMessage::READ_CONFIG_FROM . $configFile); $config = AIConfig::fromYamlFile($configFile); if ($input->getOption(self::OPTION_REPORT_UNDEFINED)) { $config->setReportUndefined(true); } if (!$this->isValidArchitectureFile($config, $input, $output)) { return self::EXIT_FAILED; } $output->writeln(CliMessage::READ_ARCHITECTURE_FILE_FROM . $config->getArchitecture()); $output->writeln(CliMessage::STARTING_ANALYSIS); $output->writeln(""); $archInspec = new ArchInspec($config); if ($archInspec->analyze(new ConsoleWriter($output))) { return self::EXIT_SUCCESS; } else { return self::EXIT_VIOLATION; } }