addOption("all", "A", InputOption::VALUE_NONE, "Stop all services"); $this->addOption("instance", "i", InputOption::VALUE_REQUIRED, "Specify the instance name", "default"); $this->addArgument("service", InputArgument::OPTIONAL, "The service name"); } protected function execute(InputInterface $input, OutputInterface $output) { $serviceRegistry = $this->getServiceRegistry(); $containerManager = $this->getContainerManager(); $serviceName = $input->getArgument("service"); $instanceName = $input->getOption("instance"); $stopAll = $input->getOption("all"); if (!($serviceName || $stopAll)) { $output->writeln("You need to specify a service, or --all"); return self::FAILURE; } if ($stopAll) { $services = $containerManager->getRunningServices(); foreach ($services as $service) { $output->write("Stopping...\r"); try { $containerManager->stopService($service['service'], $service['instance']); $output->writeln("Stopped service ".$service['service']['name']."[".$service['instance']."]"); } catch (RuntimeException $e) { $output->writeln("".$e->getMessage().""); } } return self::SUCCESS; } $serviceInfo = $serviceRegistry->findServiceByName($serviceName); if (!$serviceInfo) { $output->writeln("No such service in registry"); return self::FAILURE; } $output->write("Stopping...\r"); try { $containerManager->stopService($serviceInfo, $instanceName); $output->writeln("Stopped service {$serviceName}[{$instanceName}]"); } catch (RuntimeException $e) { $output->writeln("".$e->getMessage().""); return self::FAILURE; } return self::SUCCESS; } }