Skip to content

Commit 0ca0a74

Browse files
committed
[php][user_email-02_extract_method] NewsletterController calls UserController
1 parent dc70329 commit 0ca0a74

File tree

2 files changed

+14
-20
lines changed

2 files changed

+14
-20
lines changed

examples/php/php-user_email-02_extract_method/src/Controller/NewsletterController.php

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,12 @@
55
namespace CodelyTv\Controller;
66

77
use CodelyTv\Model\Newsletter;
8-
use InvalidArgumentException;
98

109
final class NewsletterController
1110
{
1211
public function post(string $emailAddress): Newsletter
1312
{
14-
if ('' === $emailAddress) {
15-
throw new InvalidArgumentException('The email address is empty');
16-
}
17-
18-
if (!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) {
19-
throw new InvalidArgumentException("The email address <$emailAddress> is not valid");
20-
}
21-
22-
if (!(strpos($emailAddress, '@yahoo') || strpos($emailAddress, '@gmail') || strpos($emailAddress, '@outlook'))) {
23-
throw new InvalidArgumentException("The email address <$emailAddress> has not a common provider");
24-
}
13+
UserController::ensureEmailIsValid($emailAddress);
2514

2615
return new Newsletter($emailAddress);
2716
}

examples/php/php-user_email-02_extract_method/src/Controller/UserController.php

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)