* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Behat\Testwork\Cli; use Behat\Testwork\ServiceContainer\Configuration\ConfigurationLoader; use Behat\Testwork\ServiceContainer\ExtensionManager; use Symfony\Component\Console\Command\Command as BaseCommand; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; /** * Provides debug information about the current environment. * * @author Konstantin Kudryashov */ final class DebugCommand extends BaseCommand { /** * @var Application */ private $application; /** * @var ConfigurationLoader */ private $configurationLoader; /** * @var ExtensionManager */ private $extensionManager; /** * Initialises command. * * @param Application $application * @param ConfigurationLoader $configurationLoader * @param ExtensionManager $extensionManager */ public function __construct( Application $application, ConfigurationLoader $configurationLoader, ExtensionManager $extensionManager ) { $this->application = $application; $this->configurationLoader = $configurationLoader; $this->extensionManager = $extensionManager; parent::__construct('debug'); } /** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $output->writeln(sprintf('%s version %s', $this->application->getName(), $this->application->getVersion())); $output->writeln(''); $debug = $this->configurationLoader->debugInformation(); $output->writeln('--- configuration'); $output->writeln(sprintf(' environment variable (%s): %s', $debug['environment_variable_name'], $debug['environment_variable_content'])); $output->writeln(sprintf(' configuration file: %s', $debug['configuration_file_path'])); $output->writeln(''); $debug = $this->extensionManager->debugInformation(); $output->writeln('--- extensions'); $output->writeln(sprintf(' extensions loaded: %s', count($debug['extensions_list']) ? implode(', ', $debug['extensions_list']) : 'none')); $output->writeln(''); } }