zend-blog-3-backend
75 строк · 1.8 Кб
1<?php
2/**
3* Created by PhpStorm.
4* User: morontt
5* Date: 14.06.15
6* Time: 18:39
7*/
8
9namespace App\Command\User;
10
11use App\Repository\UserRepository;
12use Doctrine\ORM\EntityManagerInterface;
13use Symfony\Component\Console\Command\Command;
14use Symfony\Component\Console\Input\InputArgument;
15use Symfony\Component\Console\Input\InputInterface;
16use Symfony\Component\Console\Output\OutputInterface;
17
18class DeleteUserCommand extends Command
19{
20/**
21* @var UserRepository
22*/
23private UserRepository $repository;
24
25/**
26* @var EntityManagerInterface
27*/
28private EntityManagerInterface $em;
29
30/**
31* @param UserRepository $repository
32* @param EntityManagerInterface $em
33*/
34public function __construct(UserRepository $repository, EntityManagerInterface $em)
35{
36$this->repository = $repository;
37$this->em = $em;
38
39parent::__construct();
40}
41
42protected function configure(): void
43{
44$this
45->setName('mtt:user:delete')
46->setDescription('Delete user by username')
47->addArgument('username', InputArgument::REQUIRED, 'username');
48}
49
50/**
51* @param InputInterface $input
52* @param OutputInterface $output
53*
54* @return int
55*/
56protected function execute(InputInterface $input, OutputInterface $output): int
57{
58$username = $input->getArgument('username');
59
60$user = $this->repository->findOneByUsername($username);
61
62$output->writeln('');
63if (!$user) {
64$output->writeln(sprintf('<error>Error: user "%s" not found</error>', $username));
65} else {
66$this->em->remove($user);
67$this->em->flush();
68
69$output->writeln(sprintf('<info>Delete user: <comment>%s</comment></info>', $username));
70}
71$output->writeln('');
72
73return 0;
74}
75}
76