setName('webprofiler:list') ->setDescription($this->trans('commands.webprofiler.list.description')) ->addOption('ip', NULL, InputOption::VALUE_REQUIRED, $this->trans('commands.webprofiler.list.options.ip'), NULL) ->addOption('url', NULL, InputOption::VALUE_REQUIRED, $this->trans('commands.webprofiler.list.options.url'), NULL) ->addOption('method', NULL, InputOption::VALUE_REQUIRED, $this->trans('commands.webprofiler.list.options.method'), NULL) ->addOption('limit', NULL, InputOption::VALUE_REQUIRED, $this->trans('commands.webprofiler.list.options.limit'), 10); } /** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $ip = $input->getOption('ip'); $url = $input->getOption('url'); $method = $input->getOption('method'); $limit = $input->getOption('limit'); /** @var \Drupal\webprofiler\Profiler\Profiler $profiler */ $profiler = $this->container->get('profiler'); $profiles = $profiler->find($ip, $url, $limit, $method, '', ''); $rows = []; foreach ($profiles as $profile) { $row = []; $row[] = $profile['token']; $row[] = $profile['ip']; $row[] = $profile['method']; $row[] = $profile['url']; $row[] = date($this->trans('commands.webprofiler.list.rows.time'), $profile['time']); $rows[] = $row; } $table = new Table($output); $table ->setHeaders([ $this->trans('commands.webprofiler.list.header.token'), $this->trans('commands.webprofiler.list.header.ip'), $this->trans('commands.webprofiler.list.header.method'), $this->trans('commands.webprofiler.list.header.url'), $this->trans('commands.webprofiler.list.header.time'), ]) ->setRows($rows); $table->render(); } /** * {@inheritdoc} */ public function showMessage($output, $message, $type = 'info') { } }