PHP code examples for the SOLID rules, referring to the blog post: Solid PHP - SOLID principles in PHP
There should never be more than one reason for a class to change.
Software entities ... should be open for extension, but closed for modification.
Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.
Many client-specific interfaces are better than one general-purpose interface.
Depend upon abstractions, NOT concretions.