OOP Patterns written in PHP