state = $state; $this->chainQueue = $chainQueue; parent::__construct(); } protected function configure() { $this ->setName('site:maintenance') ->setDescription($this->trans('commands.site.maintenance.description')) ->addArgument( 'mode', InputArgument::REQUIRED, $this->trans('commands.site.maintenance.arguments.mode').'[on/off]' ); } protected function execute(InputInterface $input, OutputInterface $output) { $io = new DrupalStyle($input, $output); $mode = $input->getArgument('mode'); $stateName = 'system.maintenance_mode'; $modeMessage = null; $cacheRebuild = true; if ('ON' === strtoupper($mode)) { $this->state->set($stateName, true); $modeMessage = 'commands.site.maintenance.messages.maintenance-on'; } if ('OFF' === strtoupper($mode)) { $this->state->set($stateName, false); $modeMessage = 'commands.site.maintenance.messages.maintenance-off'; } if ($modeMessage === null) { $modeMessage = 'commands.site.maintenance.errors.invalid-mode'; $cacheRebuild = false; } $io->info($this->trans($modeMessage)); if ($cacheRebuild) { $this->chainQueue->addCommand('cache:rebuild', ['cache' => 'all']); } } }