@startuml class Team { - name: String - picture: Url - members: array + getName(): String + getPicture(): Url + getMainColor(): Color + getSecondColor(): Color + listMembers(): array } Team --> "- mainColor" Color Team --> "- secondaryColor" Color class Color { - value: int + getValue(): int } 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{ + ERROR_INVALID_COLOR : int {readOnly} + ERROR_INVALID_NAME : int {readOnly} + ERROR_INVALID_PICTURE : int {readOnly} + ERROR_INVALID_SEARCH : int {readOnly} + ERROR_NO_DATA_FOUND : int {readOnly} --- + __construct(gateway : TeamGateway) + createTeam(name : string,picture : string, mainColorValue : int, secondColorValue : int, errors : array) + listByName(name : string ,errors : array) : ?array } TeamModel *--"- gateway" TeamGateway TeamModel ..> Team TeamModel ..> Color class TeamController{ - twig : Environement -- + __construct( model : TeamModel, twig : Environement) + submitTeam(request : array) + listTeamByName(request : array) } TeamController *--"- model" TeamModel class Connexion{ - pdo : PDO -- + __constructor(pdo : PDO) + exec(query : string, args : array) + fetch(query string, args array): array } @enduml