addArgument('email', InputArgument::REQUIRED, 'Email address') ->addArgument('username', InputArgument::REQUIRED, 'Username') ->addArgument('password', InputArgument::REQUIRED, 'Plain-text password') ->addOption('admin', null, InputOption::VALUE_NONE, 'Grant ROLE_ADMIN'); } protected function execute(InputInterface $input, OutputInterface $output): int { $io = new SymfonyStyle($input, $output); $email = $input->getArgument('email'); $username = $input->getArgument('username'); $password = $input->getArgument('password'); $isAdmin = $input->getOption('admin'); $user = new User(); $user->setEmail($email); $user->setUsername($username); $user->setPassword($this->passwordHasher->hashPassword($user, $password)); $user->setIsVerified(true); $user->setRoles($isAdmin ? ['ROLE_ADMIN'] : []); $this->entityManager->persist($user); $this->entityManager->flush(); $io->success(sprintf( 'User "%s" (%s) created%s.', $username, $email, $isAdmin ? ' with ROLE_ADMIN' : '', )); return Command::SUCCESS; } }