Пример #1
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $logger = $this->getService('logger');
     $path = $input->getOption('path');
     $user_name = $input->getOption('username');
     $lang = $input->getOption('lang');
     $fields = explode(',', $input->getOption('fields'));
     $pretty = !$input->getOption('raw');
     $bm = new BeanManager($this->getService('sugarcrm.entrypoint'));
     $bean_list = array();
     try {
         if (!empty($user_name)) {
             $um = new UsersManager($this->getService('sugarcrm.entrypoint'));
             $bean_list[] = $um->getUserBeanByName($user_name);
         } else {
             $bean_list = $bm->getList('Users');
         }
     } catch (BeanNotFoundException $e) {
         $logger->error("User '{$user_name}' doesn't exists on the SugarCRM located at '{$path}'.");
         return ExitCode::EXIT_USER_NOT_FOUND;
     }
     $format = $input->getOption('format');
     if ($format === 'text') {
         // Output table
         $table = new Table($output);
         $table->setStyle('borderless');
         $fields_data = $bm->beanListToArray($fields, $bean_list, $pretty, $lang);
         $table->setHeaders(array_keys($fields_data[0]));
         $table->setRows($fields_data);
         $table->render();
     } else {
         $serial = SerializerBuilder::create()->build();
         try {
             $output->write($serial->serialize($bm->beanListToArray($fields, $bean_list, $pretty, $lang), $format));
         } catch (UnsupportedFormatException $e) {
             $output->write("<comment>Format {$format} is not supported.</comment>\n");
             return ExitCode::EXIT_FORMAT_ERROR;
         }
     }
 }