Design Patterns implemented in PHP