/** * Show warning if an invalid php version or * a version greater than the one on the system is specified. * * @param \Symfony\Component\Console\Output\OutputInterface $output * * @return string */ private function phpVersionWarning($output) { $phpVersion = $this->settings->getPhpVersion(); if (!$this->str->phpVersionIsValid($phpVersion)) { $output->writeln('<error>Warning: "' . $phpVersion . '" is not a valid php version. Using version ' . $this->systemPhpVersion . '</error>'); $phpVersion = $this->systemPhpVersion; } if (version_compare($phpVersion, $this->systemPhpVersion, '>')) { $output->writeln('<error>Warning: "' . $phpVersion . '" is greater than your installed php version. Using version ' . $this->systemPhpVersion . '</error>'); $phpVersion = $this->systemPhpVersion; } return $phpVersion; }
/** * Generate composer file. * * @param \JonathanTorres\Construct\Helpers\Git $git The git helper. * * @return void */ protected function composer(Git $git) { $composerFile = 'composer.' . $this->settings->getTestingFramework(); $file = $this->file->get(__DIR__ . '/stubs/composer/' . $composerFile . '.stub'); $user = $git->getUser(); $stubs = ['{project_upper}', '{project_lower}', '{vendor_lower}', '{vendor_upper}', '{testing}', '{testing_version}', '{namespace}', '{license}', '{author_name}', '{author_email}', '{keywords}', '{php_version}']; $values = [$this->projectUpper, $this->projectLower, $this->vendorLower, $this->vendorUpper, $this->settings->getTestingFramework(), $this->testingVersion, $this->createNamespace(true), $this->settings->getLicense(), $user['name'], $user['email'], $this->str->toQuotedKeywords($this->settings->getComposerKeywords()), $this->settings->getPhpVersion()]; $content = str_replace($stubs, $values, $file); if ($this->settings->withEnvironmentFiles()) { $composer = json_decode($content, true); $composer['require-dev']['vlucas/phpdotenv'] = '~2.1'; $content = json_encode($composer, JSON_PRETTY_PRINT); $content .= PHP_EOL; } $this->file->put($this->projectLower . '/' . 'composer.json', $content); }
/** * Generate composer file. * * @param \JonathanTorres\Construct\Helpers\Git $git The git helper. * * @return void */ protected function composer(Git $git) { $composerFile = 'composer.' . $this->settings->getTestingFramework(); $file = $this->file->get(__DIR__ . '/stubs/composer/' . $composerFile . '.stub'); $user = $git->getUser(); $stubs = ['{project_upper}', '{project_lower}', '{vendor_lower}', '{vendor_upper}', '{testing}', '{namespace}', '{license}', '{author_name}', '{author_email}', '{keywords}', '{php_version}']; $values = [$this->projectUpper, $this->projectLower, $this->vendorLower, $this->vendorUpper, $this->settings->getTestingFramework(), $this->createNamespace(true), $this->settings->getLicense(), $user['name'], $user['email'], $this->str->toQuotedKeywords($this->settings->getComposerKeywords()), $this->settings->getPhpVersion()]; $content = str_replace($stubs, $values, $file); if ($this->settings->withPhpcsConfiguration() && !$this->str->isWindows()) { $composer = json_decode($content, true); $composer['scripts']['cs-fix'] = 'php-cs-fixer fix . -vv || true'; $composer['scripts']['cs-lint'] = 'php-cs-fixer fix --diff --verbose --dry-run'; $content = json_encode($composer, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); $content .= PHP_EOL; } $this->file->put($this->projectLower . '/' . 'composer.json', $content); }