JonathanTorres\Construct\Commands\ConstructCommand::execute PHP Method

execute() protected method

Execute command.
protected execute ( Symfony\Component\Console\Input\InputInterface $input, Symfony\Component\Console\Output\OutputInterface $output ) : void
$input Symfony\Component\Console\Input\InputInterface
$output Symfony\Component\Console\Output\OutputInterface
return void
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $projectName = $input->getArgument('name');
        $testFramework = $input->getOption('test');
        $testingFramework = $input->getOption('test-framework');
        if ($testingFramework !== Defaults::TEST_FRAMEWORK) {
            $testFramework = $testingFramework;
        }
        $license = $input->getOption('license');
        $namespace = $input->getOption('namespace');
        $git = $input->getOption('git');
        $phpcs = $input->getOption('phpcs');
        $keywords = $input->getOption('keywords');
        $vagrant = $input->getOption('vagrant');
        $editorConfig = $input->getOption('editor-config');
        $phpVersion = $input->getOption('php');
        $environment = $input->getOption('env');
        $lgtm = $input->getOption('lgtm');
        $githubTemplates = $input->getOption('github-templates');
        $githubDocs = $input->getOption('github-docs');
        $github = $input->getOption('github');
        $codeOfConduct = $input->getOption('code-of-conduct');
        $ignoreDefaultConfiguration = $input->getOption('ignore-default-config');
        $configuration = $input->getOption('config');
        if ($this->isConfigurationApplicable($configuration) && $ignoreDefaultConfiguration === false) {
            $this->settings = Configuration::getSettings($configuration, $projectName, $keywords, $this->filesystem);
        } else {
            if ($github) {
                $githubTemplates = $githubDocs = true;
            }
            $this->settings = new Settings($projectName, $testFramework, $license, $namespace, $git, $phpcs, $keywords, $vagrant, $editorConfig, $phpVersion, $environment, $lgtm, $githubTemplates, $codeOfConduct, $githubDocs);
        }
        if (!$this->str->isValid($projectName)) {
            $warningMessage = '<error>Warning: "' . $projectName . '" is not ' . 'a valid project name, please use "vendor/project"</error>';
            $output->writeln($warningMessage);
            return false;
        }
        $this->warnAndOverwriteInvalidSettingsWithDefaults($output);
        $this->construct->generate($this->settings, new Git(), new Script());
        $this->initializedGitMessage($output);
        $this->bootstrappedCodeceptionMessage($testFramework, $output);
        $this->initializedBehatMessage($testFramework, $output);
        $output->writeln('<info>Project "' . $projectName . '" constructed.</info>');
    }