<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Setup\Console\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Question\ConfirmationQuestion; use Magento\Setup\Model\InstallerFactory; use Magento\Framework\Setup\ConsoleLogger; class UninstallCommand extends AbstractSetupCommand { /** * @var InstallerFactory */ private $installerFactory; /** * @param InstallerFactory $installerFactory */ public function __construct(InstallerFactory $installerFactory) { $this->installerFactory = $installerFactory; parent::__construct(); } /** * {@inheritdoc} */ protected function configure() { $this->setName('setup:uninstall') ->setDescription('Uninstalls the Magento application'); parent::configure(); } /** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $helper = $this->getHelper('question'); $question = new ConfirmationQuestion('Are you sure you want to uninstall Magento?[y/N]', false); if ($helper->ask($input, $output, $question) || !$input->isInteractive()) { $installer = $this->installerFactory->create(new ConsoleLogger($output)); $installer->uninstall(); } return \Magento\Framework\Console\Cli::RETURN_SUCCESS; } }