@@ -11,35 +11,40 @@ final class UserController
1111{
1212 public function post (string $ emailAddress ): User
1313 {
14- $ this ->ensureEmailIsNotEmpty ($ emailAddress );
15- $ this ->ensureEmailIsFormattedCorrectly ($ emailAddress );
16- $ this ->ensureEmailHasCommonProvider ($ emailAddress );
14+ self ::ensureEmailIsValid ($ emailAddress );
1715
1816 return new User ($ emailAddress );
1917 }
2018
21- private function ensureEmailIsNotEmpty (string $ emailAddress ): void
19+ public static function ensureEmailIsValid (string $ emailAddress ): void
20+ {
21+ self ::ensureEmailIsNotEmpty ($ emailAddress );
22+ self ::ensureEmailIsFormattedCorrectly ($ emailAddress );
23+ self ::ensureEmailHasCommonProvider ($ emailAddress );
24+ }
25+
26+ private static function ensureEmailIsNotEmpty (string $ emailAddress ): void
2227 {
2328 if ('' === $ emailAddress ) {
2429 throw new InvalidArgumentException ('The email address is empty ' );
2530 }
2631 }
2732
28- private function ensureEmailIsFormattedCorrectly (string $ emailAddress ): void
33+ private static function ensureEmailIsFormattedCorrectly (string $ emailAddress ): void
2934 {
3035 if (!filter_var ($ emailAddress , FILTER_VALIDATE_EMAIL )) {
3136 throw new InvalidArgumentException ("The email address < $ emailAddress> is not valid " );
3237 }
3338 }
3439
35- private function ensureEmailHasCommonProvider (string $ emailAddress ): void
40+ private static function ensureEmailHasCommonProvider (string $ emailAddress ): void
3641 {
37- if (!$ this -> emailHasCommonProvider ($ emailAddress )) {
42+ if (!self :: emailHasCommonProvider ($ emailAddress )) {
3843 throw new InvalidArgumentException ("The email address < $ emailAddress> has not a common provider " );
3944 }
4045 }
4146
42- private function emailHasCommonProvider (string $ emailAddress ): bool
47+ private static function emailHasCommonProvider (string $ emailAddress ): bool
4348 {
4449 return strpos ($ emailAddress , '@yahoo ' ) || strpos ($ emailAddress , '@gmail ' ) || strpos ($ emailAddress , '@outlook ' );
4550 }
0 commit comments