The Liskov Substitution Principle If this sounds familiar, it should. We already discussed these principles when we
talked about the Liskov Substitution Principle. Our various concrete repositories are
interchangeable as they both extend the same interface.
The Dependency Inversion Principle also applies here, as we’re modifying our high
level code (the controller in our example) to not depend upon low level code (the
repository), and instead depend upon an abstraction.
¹⁹
https://github.com/padraic/mockery
²⁰
http://phpunit.de/manual/4.1/en/test-doubles.html