setName('zone:remove') ->setDescription('Remove a zone') ->addArgument('zone_id', InputArgument::REQUIRED, 'Zone ID') ->addOption('confirm', null, InputOption::VALUE_NONE, 'Confirmation') ->setHelp("%command.name% By removing a zone, you will remove all associated versions and records!"); } protected function execute(InputInterface $input, OutputInterface $output) { parent::execute($input, $output); $id = $this->getInput()->getArgument('zone_id'); $zone = ZoneQuery::create()->findOneById($id); if (null === $zone) { $this->getOutput()->writeln('Zone not found.'); return; } $confirm = $this->getInput()->getOption('confirm'); if (false === $confirm) { $this->getOutput()->writeln('By removing this zone, you will remove all associated versions and records!'); $confirm = $this->getHelper('dialog')->askConfirmation($this->getOutput(), 'Do you confirm? [no] ', false); } if ($confirm) { $zone->delete(); $this->getOutput()->writeln('Zone removed.'); } else { $this->getOutput()->writeln('Aborted.'); } } }