Introduction
Design patterns are commonly used ways of implementing solutions to problems that occur across a wide range of applications and are usually independent of the programming language. Most existing guides use Java or C++ for the examples, however in this guide I've used PHP, and I've only covered design patterns which apply to that language.