예제 #1
0
 private function registerSet()
 {
     $command = $this->register('set');
     // set arguments
     $command->setDefinition(array(new InputArgument('query', InputArgument::REQUIRED, 'Phrase to search'), new InputArgument('id', InputArgument::OPTIONAL, 'Query identifier'), new InputOption('filters', null, InputOption::VALUE_REQUIRED, 'Filters data')));
     // set description
     $command->setDescription('Adds/updates query to search on allegro');
     // set action
     $command->setCode(function (InputInterface $input, OutputInterface $output) {
         // storage
         $storage = QueryStorage::getInstance();
         // create data
         $data = QueryStorage::createQuery($input->getArgument('query'), $input->getOption('filters'));
         // existing ids
         $ids = $storage->getIds();
         // set/update
         $id = QueryStorage::getInstance()->set($data, $input->getArgument('id'));
         // save
         QueryStorage::getInstance()->save();
         // write output
         $output->writeln(sprintf('%s query: <info>%s</info> to database with ID: <info>%s</info>', in_array($id, $ids) ? 'Updated' : 'Added', QueryStorage::formatQuery($data), $id));
     });
 }