June 2017
Intermediate to advanced
394 pages
8h 52m
English
A common implementation for the criterion object is the Specification pattern. A specification is a simple predicate that takes a Domain object and returns a boolean. Given a Domain object, it will return true if it specifies the specification, and false otherwise:
interface PostSpecification{ /** * @return boolean */ public function specifies(Post $aPost);}
We just need to add a query method to our Repository:
interface PostRepository{ // ... public function query($specification);}