Practicing Design Patterns in PHP and some other PHP features