Esempio n. 1
0
 /**
  * @param DataMapper $accountMapper
  * @param DataMapper $userMapper
  * @param FirstRunForm $form
  * @return Account
  */
 public function setupFirstRun(DataMapper $accountMapper, DataMapper $userMapper, FirstRunForm $form)
 {
     $this->assert($accountMapper->getEntityClass() == Account::class);
     $this->assert($userMapper->getEntityClass() == User::class);
     /** @var PasswordInterface $hasher */
     $hasher = $this->getServiceLocator()->get(PasswordInterface::class);
     $data = $form->getData();
     $user = $userMapper->create(['name' => $data['user_name'], 'email' => $data['user_email'], 'password_changed' => true, 'password' => $hasher->create($data['password']), 'status' => User::STATUS_ACTIVE]);
     /** @var Account $account */
     $account = $accountMapper->getHydrator()->hydrate($data, new Account());
     $account->setOwner($user);
     $account->setBillingUser($user);
     $accountMapper->create($account);
     return $account;
 }