|
15 | 15 | use App\Repository\UserRepository; |
16 | 16 | use App\Utils\Validator; |
17 | 17 | use Doctrine\ORM\EntityManagerInterface; |
| 18 | +use Psr\Log\LoggerInterface; |
18 | 19 | use Symfony\Component\Console\Attribute\AsCommand; |
19 | 20 | use Symfony\Component\Console\Command\Command; |
20 | 21 | use Symfony\Component\Console\Exception\RuntimeException; |
@@ -49,7 +50,8 @@ class DeleteUserCommand extends Command |
49 | 50 | public function __construct( |
50 | 51 | private EntityManagerInterface $entityManager, |
51 | 52 | private Validator $validator, |
52 | | - private UserRepository $users |
| 53 | + private UserRepository $users, |
| 54 | + private LoggerInterface $logger |
53 | 55 | ) { |
54 | 56 | parent::__construct(); |
55 | 57 | } |
@@ -114,15 +116,22 @@ protected function execute(InputInterface $input, OutputInterface $output): int |
114 | 116 | throw new RuntimeException(sprintf('User with username "%s" not found.', $username)); |
115 | 117 | } |
116 | 118 |
|
117 | | - // After an entity has been removed its in-memory state is the same |
| 119 | + // After an entity has been removed, its in-memory state is the same |
118 | 120 | // as before the removal, except for generated identifiers. |
119 | 121 | // See https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/working-with-objects.html#removing-entities |
120 | 122 | $userId = $user->getId(); |
121 | 123 |
|
122 | 124 | $this->entityManager->remove($user); |
123 | 125 | $this->entityManager->flush(); |
124 | 126 |
|
125 | | - $this->io->success(sprintf('User "%s" (ID: %d, email: %s) was successfully deleted.', $user->getUsername(), $userId, $user->getEmail())); |
| 127 | + $userUsername = $user->getUsername(); |
| 128 | + $userEmail = $user->getEmail(); |
| 129 | + |
| 130 | + $this->io->success(sprintf('User "%s" (ID: %d, email: %s) was successfully deleted.', $userUsername, $userId, $userEmail)); |
| 131 | + |
| 132 | + // Logging is helpful and important to keep a trace of what happened in the software runtime flow. |
| 133 | + // See https://symfony.com/doc/current/logging.html |
| 134 | + $this->logger->info('User "{username}" (ID: {id}, email: {email}) was successfully deleted.', ['username' => $userUsername, 'id' => $userId, 'email' => $userEmail]); |
126 | 135 |
|
127 | 136 | return Command::SUCCESS; |
128 | 137 | } |
|
0 commit comments