Skip to content

Instantly share code, notes, and snippets.

@morrislaptop
Last active June 12, 2021 21:38
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 morrislaptop/4619cd66ebf69c152dd70af3a367bd8d to your computer and use it in GitHub Desktop.
Save morrislaptop/4619cd66ebf69c152dd70af3a367bd8d to your computer and use it in GitHub Desktop.
<?php
class PostAggregateRoot
{
public function publishPost(DateTime $when) {
$this->recordThat(new PostPublishScheduled($when));
if ($when < now()) {
$this->recordThat(new PostPublished());
}
return $this;
}
public function publishPostNow() {
$this->recordThat(new PostPublished());
return $this;
}
}
class PublishPostsConsole
{
public function run() {
$posts = Post::toBePublished(); // query in the model
foreach ($posts as $post) {
PostAggregateRoot::retrieve($post->id)
->publishPostNow()
->persist();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment