src/Hodor/Command/TestGenerateConfigCommand.php
<?php namespace Hodor\Command; use Symfony\Component\Console\Command\Command;use Symfony\Component\Console\Input\InputInterface;use Symfony\Component\Console\Input\InputOption;use Symfony\Component\Console\Output\OutputInterface; class TestGenerateConfigCommand extends Command{Method `configure` has 32 lines of code (exceeds 25 allowed). Consider refactoring. protected function configure() { $this ->setName('test:generate-config') ->setDescription('Generate a config file for tests') ->addOption( 'config-file', false, InputOption::VALUE_REQUIRED, 'Config file to save the config to', __DIR__ . '/../../../config/config.test.php' ) ->addOption( 'postgres-host', false, InputOption::VALUE_REQUIRED, 'Host name to use for postgres', 'localhost' ) ->addOption( 'postgres-dbname', false, InputOption::VALUE_REQUIRED, 'Database name to use for postgres', 'test_hodor' ) ->addOption( 'rabbitmq-host', false, InputOption::VALUE_REQUIRED, 'Host name to use for rabbitmq', '127.0.0.1' ) ; } Avoid unused parameters such as '$output'. protected function execute(InputInterface $input, OutputInterface $output) { $options = [ 'postgres-host' => $input->getOption('postgres-host'), 'postgres-dbname' => $input->getOption('postgres-dbname'), 'rabbitmq-host' => $input->getOption('rabbitmq-host'), ]; $template = function (array $options) { return require __DIR__ . '/../../../config/dist/config.test.php'; }; $config_contents = "<?php\nreturn " . var_export($template($options), true) . ";"; file_put_contents($input->getOption('config-file'), $config_contents); }}