Modification du diagramme de classe, j'ai essayé de faire MVC, a voir ce que demande BOUHOURS

diagramclass
Shana CASCARRA 2 years ago
parent b437966a71
commit 322230e364

@ -1,143 +1,211 @@
# Diagramme de classe
## Le M est sérializable
```plantuml
@startuml
object index.php
class FrontControleur{
}
class ControleurAdmin{
}
class ControleurRedac{
}
class ControleurModerateur{
}
class ControleurUtilisateur{
class ArticleTheque{
+ getArticles() : List<Article>
+ addArticle(newArticle : Article)
+ delArticle(article : Article)
+ rechercheArticle(id : String) : Article
+ getArticlesSignales() : List<Article>
}
class Main{
interface IArticleTheque{
+ getArticles() : List<Article>
+ addArticle(newArticle : Article)
+ delArticle(article : Article)
+ rechercheArticle(id : String) : Article
+ getArticlesSignales() : List<Article>
}
class Article{
# titre : String
# image : String
# datePlublication : Date
# description : String
# motsCles : List<String>
# tempsConsultation : int
# note : int
- id : String
- titre : String
- datePublication : Date
- description : String
- motsCles : List<String>
- tempsConsultation : int
- etat : int
- cptSignalement : int
- commentaires : map <User, List<Message> >
+ getId() : String
+ getTitre() : String
+ getImage() : String
+ getDatePublication() : Date
+ getDescription() : String
+ getTempsConsultation() : int
+ getNote() : int
+ setNote(int newNote)
+ getEtat() : int
+ getCptSignalement() : int
+ setTitre(newTitre : String)
+ setDescription(newDescription : String)
+ setMotsCles(newMotCles : List<String>)
+ setTempsConsultation (newTemps : int)
+ setNote(newNote : int)
+ setEtat(newEtat : int)
+ setCptSignalement()
}
interface IArticle{
+ getId() : String
+ getTitre() : String
+ getDatePublication() : Date
+ getDescription() : String
+ getTempsConsultation() : int
+ getNote() : int
+ getEtat() : int
+ getCptSignalement() : int
+ setTitre(newTitre : String)
+ setDescription(newDescription : String)
+ setMotsCles(newMotCles : List<String>)
+ setTempsConsultation (newTemps : int)
+ setNote(newNote : int)
+ setEtat(newEtat : int)
+ setCptSignalement()
}
abstract Contenu{
- titre : String
- ordre : int
+ getTitre() : String
+ getOrdre() : int
+ setTitre(newTitre : String)
+ setOrdre(newOrdre : int)
}
class Media{
- chemin : String
abstract class Contenu{
ordre : int
}
class Image{
titre : String
chemin : String
+ getChemin() : String
+ setChemin(newChemin : String)
}
class Paragraphe{
titre : String
texte : String
}
class Video{
lien : String
}
class ArticleTheque{
- texte : String
+ ajouterArticle(Article newArticle)
+ supprimerArticle(Article a)
+ rechercherArticle(String titre) : Article
+ rechercheParCategorie(String categorie, ArticleTheque aTheque) : List<Article>
+ getTexte() : String
+ setTexte(newTexte : String)
}
class Utilisateur{
# email : String
# pseudo : String
# motDePasse : String
class Message{
- dateMessage : date
- message : String
+ setEMail (String newEMail)
+ setPseudo (String pseudo)
+ setMotDePasse (String motDePasse)
+ getDateMessage() : date
+ getMessage() : String
}
interface IMessage{
+ getDateMessage() : date
+ getMessage() : String
}
+ ajouterNote(String titreArticle, int note)
+ contribuer(String contribution)
+ demanderAide(String demande)
class UserTheque{
+ getUsers() : List<User>
+ addUser(newUser : User)
+ delUser(user : User)
+ rechercheUser(pseudo : String)
}
class UtilisateurTheque{
interface IUserTheque{
+ getUsers() : List<User>
+ addUser(newUser : User)
+ delUser(user : User)
+ rechercheUser(pseudo : String)
}
class User{
- pseudo : String
- mail : String
- motDePasse : String
+ getPseudo() : String
+ getMail() : String
+ getMotDePasse() : String
+ ajouterUtilisateur(String email, String pseudo, String motDePasse)
+ supprimerUtilisateur(String pseudo)
+ rechercherUtilisateur(String pseudo, String motDePasse) : Utilisateur
+ setPseudo(newPseudo : String)
+ setMail(newMail : String)
+ setMotDePasse(newMotDePasse : String)
}
interface IUser{
+ getPseudo() : String
+ getMail() : String
+ getMotDePasse() : String
class Redacteur{
+ setPseudo(newPseudo : String)
+ setMail(newMail : String)
+ setMotDePasse(newMotDePasse : String)
}
enum Role{
Visiteur
Utilisateur
Redacteur
Moderateur
Administrateur
}
+ redigerArticle(Contenu c)
+ commenterArticle(Article a, String commentaire)
class FormTheque{
+ addForm(newFormulaire : Formulaire)
+ delForm(formulaire : Formulaire)
+ getForms() : List<Formulaire>
}
interface IFormTheque{
+ addForm(newFormulaire : Formulaire)
+ delForm(formulaire : Formulaire)
+ getForms() : List<Formulaire>
}
abstract Formulaire{
- id : String
- pseudoUser : String
- mailUser : String
class Moderateur{
+ getId() : String
+ getPseudoUser() : String
+ getMailUser() : String
}
class FormAide{
- sujet : String
- message : String
+ validerUnArticle(Article a)
+ refuterUnArticle(Article a)
+ supprimerUnUtilisateur(Utilisateur u)
+ supprimerUnArticle(Article a)
+ getSujet() : String
+ getMessage() : String
}
class FormContribution{
- theme : String
- dateEnvoie : date
- liens : List<String>
+ getTheme() : String
+ getDateEnvoie() : date
+ getLiens() : List<String>
}
ArticleTheque --> "*" Article
Article --> "*" Contenu : "listeContenus"
Main ..> ArticleTheque
class DataManager{}
ArticleTheque --> "*" IArticle
Article --|> IArticle
Article --> "*" Contenu
Paragraphe --|> Contenu
Image --|> Contenu
Video --|> Contenu
Media --|> Contenu
Article ..> IMessage
Message --|> IMessage
Article ..> IUser
UtilisateurTheque --> "*" Utilisateur
UtilisateurTheque ..> UserGateway
Main ..> UtilisateurTheque
UserTheque --> "*" IUser
User --|> IUser
User --> Role
Utilisateur ..> FormGateway
FormTheque --> "*" Formulaire
FormAide --|> Formulaire
FormContribution --|> Formulaire
Article ..> ArticleGateway
Redacteur ..> Article
Redacteur ..> Contenu
ArticleTheque ..|> IArticleTheque
UserTheque ..|> IUserTheque
FormTheque ..|> IFormTheque
DataManager --> IArticleTheque
DataManager --> IUserTheque
DataManager --> IFormTheque
Moderateur ..> Article
Moderateur ..> ArticleTheque
Moderateur ..> UtilisateurTheque
Redacteur --|> Utilisateur
Moderateur --|> Redacteur
@enduml
```
@enduml
```

@ -4,10 +4,32 @@
object index.php
class App{
Package Vue #Wheat{
class Verax
}
index.php --> Vue
Vue --> Controleur.FrontControleur
package Controleur #PaleGreen{
class FrontControleur{
action
}
class UserControleur{
router
}
class ArticleControleur{
router
}
ArticleControleur --> Model.ArticleManager
UserControleur --> Model.UserManager
FrontControleur ..> ArticleControleur
FrontControleur ..> UserControleur
}
package Controller{
package Model #LightBlue{
class ArticleManager{
+ getArticles() : List<Article>
@ -24,216 +46,214 @@ package Controller{
+ delForm(id : String)
+ getForms() : List<String>
}
}
class ArticleTheque{
+ getArticles() : List<Article>
+ addArticle(newArticle : Article)
+ delArticle(article : Article)
+ rechercheArticle(id : String) : Article
+ getArticlesSignales() : List<Article>
}
interface IArticleTheque{
+ getArticles() : List<Article>
+ addArticle(newArticle : Article)
+ delArticle(article : Article)
+ rechercheArticle(id : String) : Article
+ getArticlesSignales() : List<Article>
}
class Article{
- id : String
- titre : String
- datePublication : Date
- description : String
- motsCles : List<String>
- tempsConsultation : int
- etat : int
- cptSignalement : int
- commentaires : map <User, List<Message> >
+ getId() : String
+ getTitre() : String
+ getDatePublication() : Date
+ getDescription() : String
+ getTempsConsultation() : int
+ getNote() : int
+ getEtat() : int
+ getCptSignalement() : int
+ setTitre(newTitre : String)
+ setDescription(newDescription : String)
+ setMotsCles(newMotCles : List<String>)
+ setTempsConsultation (newTemps : int)
+ setNote(newNote : int)
+ setEtat(newEtat : int)
+ setCptSignalement()
}
interface IArticle{
+ getId() : String
+ getTitre() : String
+ getDatePublication() : Date
+ getDescription() : String
+ getTempsConsultation() : int
+ getNote() : int
+ getEtat() : int
+ getCptSignalement() : int
+ setTitre(newTitre : String)
+ setDescription(newDescription : String)
+ setMotsCles(newMotCles : List<String>)
+ setTempsConsultation (newTemps : int)
+ setNote(newNote : int)
+ setEtat(newEtat : int)
+ setCptSignalement()
}
abstract Contenu{
- titre : String
- ordre : int
+ getTitre() : String
+ getOrdre() : int
+ setTitre(newTitre : String)
+ setOrdre(newOrdre : int)
}
class Media{
- chemin : String
class ArticleTheque{
+ getChemin() : String
+ setChemin(newChemin : String)
}
class Paragraphe{
- texte : String
+ getArticles() : List<Article>
+ addArticle(newArticle : Article)
+ delArticle(article : Article)
+ rechercheArticle(id : String) : Article
+ getArticlesSignales() : List<Article>
}
interface IArticleTheque{
+ getArticles() : List<Article>
+ addArticle(newArticle : Article)
+ delArticle(article : Article)
+ rechercheArticle(id : String) : Article
+ getArticlesSignales() : List<Article>
}
class Article{
- id : String
- titre : String
- datePublication : Date
- description : String
- motsCles : List<String>
- tempsConsultation : int
- etat : int
- cptSignalement : int
- commentaires : map <User, List<Message> >
+ getId() : String
+ getTitre() : String
+ getDatePublication() : Date
+ getDescription() : String
+ getTempsConsultation() : int
+ getNote() : int
+ getEtat() : int
+ getCptSignalement() : int
+ setTitre(newTitre : String)
+ setDescription(newDescription : String)
+ setMotsCles(newMotCles : List<String>)
+ setTempsConsultation (newTemps : int)
+ setNote(newNote : int)
+ setEtat(newEtat : int)
+ setCptSignalement()
}
interface IArticle{
+ getId() : String
+ getTitre() : String
+ getDatePublication() : Date
+ getDescription() : String
+ getTempsConsultation() : int
+ getNote() : int
+ getEtat() : int
+ getCptSignalement() : int
+ setTitre(newTitre : String)
+ setDescription(newDescription : String)
+ setMotsCles(newMotCles : List<String>)
+ setTempsConsultation (newTemps : int)
+ setNote(newNote : int)
+ setEtat(newEtat : int)
+ setCptSignalement()
}
abstract Contenu{
- titre : String
- ordre : int
+ getTitre() : String
+ getOrdre() : int
+ setTitre(newTitre : String)
+ setOrdre(newOrdre : int)
}
class Media{
- chemin : String
+ getTexte() : String
+ setTexte(newTexte : String)
}
+ getChemin() : String
+ setChemin(newChemin : String)
}
class Paragraphe{
- texte : String
class Message{
- dateMessage : date
- message : String
+ getTexte() : String
+ setTexte(newTexte : String)
}
+ getDateMessage() : date
+ getMessage() : String
}
interface IMessage{
+ getDateMessage() : date
+ getMessage() : String
}
class Message{
- dateMessage : date
- message : String
class UserTheque{
+ getUsers() : List<User>
+ addUser(newUser : User)
+ delUser(user : User)
+ rechercheUser(pseudo : String)
}
interface IUserTheque{
+ getUsers() : List<User>
+ addUser(newUser : User)
+ delUser(user : User)
+ rechercheUser(pseudo : String)
}
class User{
- pseudo : String
- mail : String
- motDePasse : String
+ getPseudo() : String
+ getMail() : String
+ getMotDePasse() : String
+ setPseudo(newPseudo : String)
+ setMail(newMail : String)
+ setMotDePasse(newMotDePasse : String)
}
interface IUser{
+ getPseudo() : String
+ getMail() : String
+ getMotDePasse() : String
+ setPseudo(newPseudo : String)
+ setMail(newMail : String)
+ setMotDePasse(newMotDePasse : String)
}
enum Role{
Visiteur
Utilisateur
Redacteur
Moderateur
Administrateur
}
+ getDateMessage() : date
+ getMessage() : String
}
interface IMessage{
+ getDateMessage() : date
+ getMessage() : String
}
class FormTheque{
+ addForm(newFormulaire : Formulaire)
+ delForm(formulaire : Formulaire)
+ getForms() : List<Formulaire>
}
interface IFormTheque{
+ addForm(newFormulaire : Formulaire)
+ delForm(formulaire : Formulaire)
+ getForms() : List<Formulaire>
}
abstract Formulaire{
- id : String
- pseudoUser : String
- mailUser : String
+ getId() : String
+ getPseudoUser() : String
+ getMailUser() : String
}
class FormAide{
- sujet : String
- message : String
class UserTheque{
+ getUsers() : List<User>
+ addUser(newUser : User)
+ delUser(user : User)
+ rechercheUser(pseudo : String)
}
interface IUserTheque{
+ getUsers() : List<User>
+ addUser(newUser : User)
+ delUser(user : User)
+ rechercheUser(pseudo : String)
}
class User{
- pseudo : String
- mail : String
- motDePasse : String
+ getPseudo() : String
+ getMail() : String
+ getMotDePasse() : String
+ setPseudo(newPseudo : String)
+ setMail(newMail : String)
+ setMotDePasse(newMotDePasse : String)
}
interface IUser{
+ getPseudo() : String
+ getMail() : String
+ getMotDePasse() : String
+ setPseudo(newPseudo : String)
+ setMail(newMail : String)
+ setMotDePasse(newMotDePasse : String)
}
enum Role{
Visiteur
Utilisateur
Redacteur
Moderateur
Administrateur
}
+ getSujet() : String
+ getMessage() : String
}
class FormContribution{
- theme : String
- dateEnvoie : date
- liens : List<String>
+ getTheme() : String
+ getDateEnvoie() : date
+ getLiens() : List<String>
}
class FormTheque{
+ getForms() : List<Formulaire>
+ addForm(newFormulaire : Formulaire)
+ delForm(formulaire : Formulaire)
}
interface IFormTheque{
+ getForms() : List<Formulaire>
+ addForm(newFormulaire : Formulaire)
+ delForm(formulaire : Formulaire)
}
abstract Formulaire{
- id : String
- pseudoUser : String
- mailUser : String
+ getId() : String
+ getPseudoUser() : String
+ getMailUser() : String
}
class FormAide{
- sujet : String
- message : String
class DataManager{}
+ getSujet() : String
+ getMessage() : String
}
class FormContribution{
- theme : String
- dateEnvoie : date
- liens : List<String>
+ getTheme() : String
+ getDateEnvoie() : date
+ getLiens() : List<String>
}
index.php --> App
App --> Controller
class DataManager{}
ArticleManager --> IArticleTheque
ArticleTheque --> "*" IArticle
Article --|> IArticle
Article --> "*" Contenu
Paragraphe --|> Contenu
Media --|> Contenu
Article ..> IMessage
Message --|> IMessage
Article ..> IUser
UserManager --> IUserTheque
UserTheque --> "*" IUser
User --|> IUser
User --> Role
ArticleManager --> IArticleTheque
ArticleTheque --> "*" IArticle
Article --|> IArticle
Article --> "*" Contenu
Paragraphe --|> Contenu
Media --|> Contenu
Article ..> IMessage
Message --|> IMessage
Article ..> IUser
UserManager --> IFormTheque
FormTheque --> "*" Formulaire
FormAide --|> Formulaire
FormContribution --|> Formulaire
UserManager --> IUserTheque
UserTheque --> "*" IUser
User --|> IUser
User --> Role
UserManager --> IFormTheque
FormTheque --> "*" Formulaire
FormAide --|> Formulaire
FormContribution --|> Formulaire
ArticleTheque ..|> IArticleTheque
UserTheque ..|> IUserTheque
FormTheque ..|> IFormTheque
DataManager --> IArticleTheque
DataManager --> IUserTheque
DataManager --> IFormTheque
ArticleTheque ..|> IArticleTheque
UserTheque ..|> IUserTheque
FormTheque ..|> IFormTheque
DataManager --> IArticleTheque
DataManager --> IUserTheque
DataManager --> IFormTheque
}
@enduml

Loading…
Cancel
Save