setName('categories:tree') ->setDescription('Show categories') ->setHelp("The %command.name% show the categories"); } protected function execute(InputInterface $input, OutputInterface $output) { $client = new Client(); $configLoader = new ConfigLoader(); if (!isset($configLoader->getConfig()['auth']['token'])) { $output->writeln('You must login.'); return; } $client->setAuthorization($configLoader->getConfig()['auth']['token']); try { $response = $client->getCategoriesTree(); if ($response->hasError()) { $output->writeln(sprintf( '%s (%d)', $response->getErrorMessage(), $response->getErrorCode() )); return; } foreach ($response->getData() as $category) { if (isset($category['name'])) { $output->writeln(sprintf('%s', $category['name'])); } if (!empty($category['cats'])) { foreach ($category['cats'] as $subCategory) { if (isset($subCategory['name'])) { $output->writeln(sprintf('> %s', $subCategory['name'])); } } } $output->writeln(''); } } catch (ClientException $e) { $output->writeln(sprintf('An error occured. %s', $e->getMessage())); } } }