Understanding PHP Design Patterns.