Better rendering for show user command using symfony style

This commit is contained in:
Nicolas Hart 2017-07-27 23:25:27 +02:00
parent f39152ad6e
commit d58199f362

View File

@ -7,12 +7,13 @@ use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
use Wallabag\UserBundle\Entity\User; use Wallabag\UserBundle\Entity\User;
class ShowUserCommand extends ContainerAwareCommand class ShowUserCommand extends ContainerAwareCommand
{ {
/** @var OutputInterface */ /** @var SymfonyStyle */
protected $output; protected $io;
protected function configure() protected function configure()
{ {
@ -29,7 +30,7 @@ class ShowUserCommand extends ContainerAwareCommand
protected function execute(InputInterface $input, OutputInterface $output) protected function execute(InputInterface $input, OutputInterface $output)
{ {
$this->output = $output; $this->io = new SymfonyStyle($input, $output);
$username = $input->getArgument('username'); $username = $input->getArgument('username');
@ -37,7 +38,7 @@ class ShowUserCommand extends ContainerAwareCommand
$user = $this->getUser($username); $user = $this->getUser($username);
$this->showUser($user); $this->showUser($user);
} catch (NoResultException $e) { } catch (NoResultException $e) {
$output->writeln(sprintf('<error>User "%s" not found.</error>', $username)); $this->io->error(sprintf('User "%s" not found.', $username));
return 1; return 1;
} }
@ -50,12 +51,14 @@ class ShowUserCommand extends ContainerAwareCommand
*/ */
private function showUser(User $user) private function showUser(User $user)
{ {
$this->output->writeln(sprintf('Username : %s', $user->getUsername())); $this->io->listing([
$this->output->writeln(sprintf('Email : %s', $user->getEmail())); sprintf('Username : %s', $user->getUsername()),
$this->output->writeln(sprintf('Display name : %s', $user->getName())); sprintf('Email : %s', $user->getEmail()),
$this->output->writeln(sprintf('Creation date : %s', $user->getCreatedAt()->format('Y-m-d H:i:s'))); sprintf('Display name : %s', $user->getName()),
$this->output->writeln(sprintf('Last login : %s', $user->getLastLogin() !== null ? $user->getLastLogin()->format('Y-m-d H:i:s') : 'never')); sprintf('Creation date : %s', $user->getCreatedAt()->format('Y-m-d H:i:s')),
$this->output->writeln(sprintf('2FA activated: %s', $user->isTwoFactorAuthentication() ? 'yes' : 'no')); sprintf('Last login : %s', $user->getLastLogin() !== null ? $user->getLastLogin()->format('Y-m-d H:i:s') : 'never'),
sprintf('2FA activated: %s', $user->isTwoFactorAuthentication() ? 'yes' : 'no'),
]);
} }
/** /**