On PHPMaster.com today there's a new tutorial looking at using separated interfaces in your OOP applications, a design pattern that emphasized decoupled components.
Considering that the concept may sound rather tangled and twisted at first, this shifting of protocols between components lives and breaths under the umbrella of a basic design pattern known as Separated Interface, which at least to some extent, goes hand in hand with the commandments of the Dependency Inversion Principle. Moreover, because of the pattern’s easy-going nature, it’s feasible to implement it in PHP without much fuss.
He shows how to create a basic model (with getters and setters) and extends this into functionality to handle "Post" and "Comment" data types. The key to it all is that the "Comments" model instance is injected into the "Post" model on its creation, making it a self-contained, but still modular, object for handling all elements of a post in one place.