loginIsAllowed($login) && !$this->loginIsMixed($login) && mb_strlen($login < 2) && mb_strlen($login) > 16 && !strpos("!@#$%^&*()\+|/'\"", $login) ) { $this->login = $login; } return $this; } private function loginIsAllowed($login) { $disallowed = [ 'Мироздатель', 'Мусорщик', 'Комментатор', ]; $d = implode('|', $disallowed); $pattern = "/\b($d)\b/iu"; return !preg_match($pattern, $login); } private function loginIsMixed($login) { $en = preg_match("/^(([0-9A-z -])+)$/iu", $login); $ru = preg_match("/^([а-яёіїє\s\d]*)$/iu", $login); return ($ru && $en) || (!$ru && !$en); } public function setEmail($email) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { $this->email = $email; } return $this; } public function setPassword($password, $passwordVerify) { if ($this->password === $passwordVerify && mb_strlen($password) > 3) { $this->password = md5($password); } return $this; } public function setBirthday($birthday) { $bdate = DateTime::createFromFormat('Y-m-d', $birthday); if ($bdate) { $this->birthday = $bdate->format('d.m.Y'); } return $this; } public function setSex($sex) { if ((int)$sex > 0) { $this->sex = $sex; } return $this; } public function get() { return [ 'login' => $this->login, 'email' => $this->email, 'password' => $this->password, 'birthday' => $this->birthday, 'sex' => $this->sex, ]; } }