zend-blog-3-backend

Форк
0
/
DeleteUserCommand.php 
75 строк · 1.8 Кб
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: morontt
5
 * Date: 14.06.15
6
 * Time: 18:39
7
 */
8

9
namespace App\Command\User;
10

11
use App\Repository\UserRepository;
12
use Doctrine\ORM\EntityManagerInterface;
13
use Symfony\Component\Console\Command\Command;
14
use Symfony\Component\Console\Input\InputArgument;
15
use Symfony\Component\Console\Input\InputInterface;
16
use Symfony\Component\Console\Output\OutputInterface;
17

18
class DeleteUserCommand extends Command
19
{
20
    /**
21
     * @var UserRepository
22
     */
23
    private UserRepository $repository;
24

25
    /**
26
     * @var EntityManagerInterface
27
     */
28
    private EntityManagerInterface $em;
29

30
    /**
31
     * @param UserRepository $repository
32
     * @param EntityManagerInterface $em
33
     */
34
    public function __construct(UserRepository $repository, EntityManagerInterface $em)
35
    {
36
        $this->repository = $repository;
37
        $this->em = $em;
38

39
        parent::__construct();
40
    }
41

42
    protected 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
     */
56
    protected function execute(InputInterface $input, OutputInterface $output): int
57
    {
58
        $username = $input->getArgument('username');
59

60
        $user = $this->repository->findOneByUsername($username);
61

62
        $output->writeln('');
63
        if (!$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

73
        return 0;
74
    }
75
}
76

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.