zend-blog-3-backend
81 строка · 2.0 Кб
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 App\Service\UserManager;
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 UpdateUserCommand extends Command
19{
20/**
21* @var UserRepository
22*/
23private UserRepository $repository;
24
25/**
26* @var UserManager
27*/
28private UserManager $userManager;
29
30/**
31* @param UserRepository $repository
32* @param UserManager $userManager
33*/
34public function __construct(
35UserRepository $repository,
36UserManager $userManager
37) {
38$this->repository = $repository;
39$this->userManager = $userManager;
40
41parent::__construct();
42}
43
44protected function configure(): void
45{
46$this
47->setName('mtt:user:update')
48->setDescription('Update user password by username')
49->addArgument('username', InputArgument::REQUIRED, 'username')
50->addArgument('password', InputArgument::REQUIRED, 'password')
51;
52}
53
54/**
55* @param InputInterface $input
56* @param OutputInterface $output
57*
58* @throws \App\Exception\ShortPasswordException
59*
60* @return int
61*/
62protected function execute(InputInterface $input, OutputInterface $output): int
63{
64$username = $input->getArgument('username');
65$password = $input->getArgument('password');
66
67$user = $this->repository->findOneByUsername($username);
68
69$output->writeln('');
70if (!$user) {
71$output->writeln(sprintf('<error>Error: user "%s" not found</error>', $username));
72} else {
73$this->userManager->updatePassword($user, $password);
74
75$output->writeln(sprintf('<info>Update user: <comment>%s</comment></info>', $username));
76}
77$output->writeln('');
78
79return 0;
80}
81}
82