Zandstra, Matt.PHP 5 objects, patterns, and practice.