Mastering PHP design patterns. (2016)