UserManager::createUser PHP Method

createUser() public method

public createUser ( RegistrationForm $form ) : boolean | User
$form RegistrationForm
return boolean | User
    public function createUser(RegistrationForm $form)
    {
        $transaction = Yii::app()->getDb()->beginTransaction();
        try {
            $user = new User();
            $user->setAttributes(['nick_name' => $form->nick_name, 'email' => $form->email]);
            if (!$this->userModule->emailAccountVerification) {
                $user->setAttributes(['status' => User::STATUS_ACTIVE, 'email_confirm' => User::EMAIL_CONFIRM_YES]);
            }
            $user->setAttribute('hash', $this->hasher->hashPassword($form->password));
            if ($user->save() && ($token = $this->tokenStorage->createAccountActivationToken($user)) !== false) {
                if (!$this->userModule->emailAccountVerification) {
                    Yii::app()->eventManager->fire(UserEvents::SUCCESS_REGISTRATION, new UserRegistrationEvent($form, $user, $token));
                } else {
                    Yii::app()->eventManager->fire(UserEvents::SUCCESS_REGISTRATION_NEED_ACTIVATION, new UserRegistrationEvent($form, $user, $token));
                }
                $transaction->commit();
                return $user;
            }
            throw new CException(Yii::t('UserModule.user', 'Error creating account!'));
        } catch (Exception $e) {
            Yii::log(Yii::t('UserModule.user', 'Error {error} account creating!', ['{error}' => $e->__toString()]), CLogger::LEVEL_INFO, UserModule::$logCategory);
            $transaction->rollback();
            Yii::app()->eventManager->fire(UserEvents::FAILURE_REGISTRATION, new UserRegistrationEvent($form, $user));
            return false;
        }
    }

Usage Example

 public function service()
 {
     $userManager = new UserManager($this->config, $this->args);
     $email = strtolower($this->secure($_REQUEST["email"]));
     $name = $this->secure($_REQUEST["name"]);
     $phone = $this->secure($_REQUEST["phone"]);
     $pass = $this->secure($_REQUEST["pass"]);
     $invitation_code = $this->secure($_COOKIE["invc"]);
     if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
         $jsonArr = array('status' => "err", "errText" => $this->getPhraseSpan(471));
         echo json_encode($jsonArr);
         return false;
     }
     $custDto = $userManager->getCustomerByEmail($email);
     if ($custDto) {
         $jsonArr = array('status' => "err", "errText" => $this->getPhraseSpan(359));
         echo json_encode($jsonArr);
         return false;
     }
     if (!$userManager->checkPassword($pass)) {
         $jsonArr = array('status' => "err", "errText" => $this->getPhraseSpan(358));
         echo json_encode($jsonArr);
         return false;
     }
     if (!$name || strlen($name) == 0) {
         $jsonArr = array('status' => "err", "errText" => $this->getPhraseSpan(356));
         echo json_encode($jsonArr);
         return false;
     }
     if ($phone != null) {
         if (strpos($phone, ',') !== false) {
             $jsonArr = array('status' => "err", "errText" => $this->getPhraseSpan(521));
             echo json_encode($jsonArr);
             return false;
         }
     }
     $userId = $userManager->createUser($email, $pass, $name, $phone);
     $userManager->setSubUser($invitation_code, $userId, $email);
     $userDto = $userManager->selectByPK($userId);
     //sending activation email using $userDto->getActivationCode();
     $emailSenderManager = new EmailSenderManager('gmail');
     $username = $name;
     $subject = "PcStore Activation!";
     $activation_code = $userDto->getActivationCode();
     $template = "account_activation";
     $params = array("user_name" => $username, "activation_code" => $activation_code);
     $emailSenderManager->sendEmail('registration', $email, $subject, $template, $params);
     $jsonArr = array('status' => "ok");
     echo json_encode($jsonArr);
     return true;
 }
All Usage Examples Of UserManager::createUser