/**
  * @param string $login
  * @param string $password
  * @param string $confirmationPassword
  * @param string $email
  *
  * @return array
  */
 public function validate($login, $password, $confirmationPassword, $email)
 {
     $errors = [];
     $member = $this->repository->getExistingLoginOrEmail($login, $email);
     if ($member !== false) {
         if ($member['login'] === $login && $member['identity'] === $login) {
             $errors[] = $this->translator->translate('registration.existing_login');
         }
         if ($member['email'] === $email) {
             $errors[] = $this->translator->translate('registration.existing_mail');
         }
     }
     if ($password !== $confirmationPassword) {
         $errors[] = $this->translator->translate('registration.password_mismatch');
     }
     if (!$this->validateIdentity($login)) {
         $errors[] = $this->translator->translate('registration.invalid_login');
     }
     if (!$this->validateEmailAddress($email)) {
         $errors[] = $this->translator->translate('registration.invalid_mail');
     }
     return $errors;
 }