@startuml class Team { - name: String - picture: Url - members: array + getName(): String + getPicture(): Url + getMainColor(): Color + getSecondColor(): Color + listMembers(): array } Team --> "- mainColor" Color Team --> "- secondColor" Color class Color { - value: string - __construct(value : string) + getValue(): string + from(value: string): Color + tryFrom(value : string) : ?Color } class TeamGateway{ -- + __construct(con : Connexion) + insert(name : string ,picture : string, mainColor : Color, secondColor : Color) + listByName(name : string): array } TeamGateway *--"- con" Connexion TeamGateway ..> Color class TeamModel{ --- + __construct(gateway : TeamGateway) + createTeam(name : string,picture : string, mainColorValue : int, secondColorValue : int, errors : array) + listByName(name : string ,errors : array) : ?array + displayTeam(id : int): Team } TeamModel *--"- gateway" TeamGateway TeamModel ..> Team TeamModel ..> Color class TeamController{ - twig : Environement -- + __construct( model : TeamModel, twig : Environement) + displaySubmitTeam() : HttpResponse + submitTeam(request : array) : HttpResponse + displayListTeamByName(): HttpResponse + listTeamByName(request : array) : HttpResponse + displayTeam(id : int): HttpResponse } TeamController *--"- model" TeamModel class Connexion{ - pdo : PDO -- + __constructor(pdo : PDO) + exec(query : string, args : array) + fetch(query string, args array): array } @enduml