Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 0ca0a74

Browse files
[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 staticfunction 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 staticfunction 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 staticfunction emailHasCommonProvider(string $emailAddress): bool
4348
{
4449
return strpos($emailAddress, '@yahoo') || strpos($emailAddress, '@gmail') || strpos($emailAddress, '@outlook');
4550
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /