Skip to content

Instantly share code, notes, and snippets.

@mcsee
Last active November 19, 2023 14:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mcsee/23a8649a28ec56db1d0874c1a32b4fc7 to your computer and use it in GitHub Desktop.
Save mcsee/23a8649a28ec56db1d0874c1a32b4fc7 to your computer and use it in GitHub Desktop.
<?
final class SocialNetwork {
function postStatus(string $newStatus) {
$this->assertUserIsLogged();
// ...
}
function uploadProfilePicture(Picture $newPicture) {
$this->assertUserIsLogged();
// ...
}
function sendMessage(User $recipient, Message $messageSend) {
$this->assertUserIsLogged();
// ...
}
function assertUserIsLogged() {
if (!$this->user->isLogged()) {
throw new Exception('User is not logged');
// This is just a simplification to show the code smell
// Operations should be defined as objects with preconditions
// etc.
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment