PHP version of teacher hyuki GoF Design Pattern.