June 2017
Intermediate to advanced
394 pages
8h 52m
English
This is the true holder of Domain behavior. Continuing with our example, the Repository interface would be simplified to the following:
interface PostRepository{ public function save(Post $post); public function byId(PostId $id); }
Now the PostRepository has been freed from all the read concerns except one: The byId function which is responsible for loading the Aggregate by its ID so that we can operate on it. And once this is done, all the query methods are also stripped down from the Post model, leaving it only with command methods. This means we'll effectively get rid of all the getter methods and any other methods exposing information about the Post Aggregate. Instead, Domain Events will be published in order to be ...