encoder_factory = $ef; $this->object_manager = $om; parent::__construct(); } protected function configure() { $this->setName('user:create') ->setDescription('Create new user.') ->setHelp('Creates user and inserts into database.') ->addArgument('username', InputArgument::REQUIRED, 'username') ->addArgument('password', InputArgument::REQUIRED, 'password') ->addOption('superadmin', 'sa', InputOption::VALUE_NONE, 'Assign role of ROLE_SUPER_ADMIN.'); } protected function execute(InputInterface $input, OutputInterface $output) { $username = $input->getArgument('username'); $raw_pass = $input->getArgument('password'); $user = new User(); // encode password $enc = $this->encoder_factory->getEncoder($user); $password = $enc->encodePassword($raw_pass, $user->getSalt()); // get entity manager // $em = $this->getContainer()->get('doctrine')->getEntityManager(); $em = $this->object_manager; // build user $user->setUsername($username) ->setPassword($password) ->setEnabled(); // superadmin if ($input->getOption('superadmin')) { $role = $em->getReference('App\Entity\Role', Role::SUPER_ADMIN); $user->addRole($role); } $em->persist($user); $em->flush(); } }