9 use Symfony\Component\Console\Input\InputInterface;
10 use Symfony\Component\Console\Output\OutputInterface;
11 use Symfony\Component\Console\Input\InputOption;
12 use Symfony\Component\Console\Input\InputArgument;
32 $this->setName(
'indexer:set-mode')
33 ->setDescription(
'Sets index mode type')
46 throw new \InvalidArgumentException(implode(
"\n",
$errors));
54 $previousStatus =
$indexer->isScheduled() ?
'Update by Schedule' :
'Update on Save';
56 $currentStatus =
$indexer->isScheduled() ?
'Update by Schedule' :
'Update on Save';
57 if ($previousStatus !== $currentStatus) {
59 'Index mode for Indexer ' .
$indexer->getTitle() .
' was changed from \'' 60 . $previousStatus .
'\' to \
'' . $currentStatus .
'\'' 63 $output->writeln(
'Index mode for Indexer ' .
$indexer->getTitle() .
' has not been changed');
66 $output->writeln($e->getMessage() . PHP_EOL);
69 }
catch (\Exception $e) {
70 $output->writeln(
$indexer->getTitle() .
" indexer process unknown error:" . PHP_EOL);
71 $output->writeln($e->getMessage() . PHP_EOL);
87 $modeOptions[] =
new InputArgument(
89 InputArgument::OPTIONAL,
90 'Indexer mode type ['. self::INPUT_KEY_REALTIME .
'|' . self::INPUT_KEY_SCHEDULE .
']' 92 $optionsList = array_merge($modeOptions, parent::getInputList());
105 $acceptedValues =
' Accepted values for ' . self::INPUT_KEY_MODE .
' are \'' 106 . self::INPUT_KEY_REALTIME .
'\' or \
'' . self::INPUT_KEY_SCHEDULE .
'\'';
108 $inputMode = $input->getArgument(self::INPUT_KEY_MODE);
110 $errors[] =
'Missing argument \'' . self::INPUT_KEY_MODE .
'\'.
' . $acceptedValues; 111 } elseif (!in_array($inputMode, [self::INPUT_KEY_REALTIME, self::INPUT_KEY_SCHEDULE])) { 112 $errors[] = $acceptedValues;
execute(InputInterface $input, OutputInterface $output)
getIndexers(InputInterface $input)
validate(InputInterface $input)