-
Respect du MVC ?
Bonjour,
J'ai un controller et j'ai besoin d'une méthode d'un autre controller, j'ai donc définis mon controller comme un service puis j'apelle le service depuis mon controller, sauf que c'est une mauvaise pratique :calim2:
Comment avoir accès à un controller depuis un autre ?
ps: appeler un controller depuis une vue je trouve sa crado...
-
j'ai du mal a voir comment (pourquoi) tu appelles une méthode d'un autre controlleur
Si tu forward/redirect vers l'action du controlleur en question, c'est pas crado.
Si tu appelles du code "métier" séparé dans une autre couche, dans ton controlleur, alors l'appeler dans un deuxieme controlleur n'est pas crado.
Parcontre appeler du code métier en "dur" dans un controlleur c'est plutot crade :D
Si ca correspond pas a ton cas tu peux toujours poster le code de ton action
-
Quand un utilisateur voit un de ses articles supprimé par un modérateur, je souhaite envoyer un mail avec le motif
je dois donc depuis mon controller postController appeler ma méthode deletePost($slug) qui elle meme doit appeler une méthode envoieMotif($motif, $user)
sauf que envoieMotif($motif, $user) est dans mailerController
-
Parfait je vais tout simplement Forward.
Je ne connaissait pas du tout et je trouve sa vachement propre et modulaire
-
Bonsoir,
J'arrive sans doute un peu après la guerre mais allons-y tout de même :)
Vu les arguments de ta méthode, je suppose que l'envoi de mails automatisé doit être récurrent. A mon sens, le mailer est alors un service appelé par le controller, ou mieux encore, via un listener.
-
@frfrance31 C'est ce que j'ai fait dans un premier temps(un service), mais j'ai un couplage fort entre mon controller qui supprime un message et celui qui envoie le mail...
C'est le fait d'appeller un controller depuis un autre controller que je trouve pas tip top, un forward, je vois le forward comme une collaboration entre les controllers, bref j'adore, c'est rapide simple efficace.
Je vais creuser la piste du listener, je n'en ai jamais fait, j'ai peur de me louper et que sa consomme de la ressource inutilement