Skip to content

Instantly share code, notes, and snippets.

@morrislaptop
Last active Jun 12, 2021
Embed
What would you like to do?
<?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