Salut à tous,

Je n'ai pas beaucoup d'expérience et j'ai du mal à savoir comment bien organiser mon code.
J'ai une entité Thread qui me permet de créer un fil de commentaire sur un article, sur une personne, ou sur d'autres entities. (C'est avec FOSCommentBundle, mais ma question est d'ordre plus général)
Je fais donc une relation OneToOne depuis Article(par exemple) vers Thread. Je dois donc mettre du code quelque part qui lorsque l'on enregistre un Article(par exemple) il récupère l'id de cette nouvelle entrée, puis crée un Thread avec comme id article_xx(par exemple) et enregistre la relation dans l'article.
Ce morceau de code pour l'instant que l'ai mis dans mon ArticleHandler :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
    public function onSuccess(Article $art)
    {
        $this->em->persist($art);    
        $this->em->flush();
 
        //Code pour rajouter le thread
        $thread = $this->tm->createThread();
        $thread->setId("article_".$pro->getId());
        $thread->setPermalink( $this->router->generate('MonBundle_article_voir', array('id' => $pro->getId()))   );
        $art->setThread($thread);
 
        $this->em->flush();
    }
Mais bon ce code ne doit pas être ici n'est-ce pas ? (Puisque ça ne concerne pas un formulaire particulier, mais seulement la création d'un article)

Faut plutôt que je le crée directement dans l'entity Article (addThread()) ? Le problème c'est que j'ai besoin de 2 services pour le morceau de code : ThreadManager et Router. Donc modifier les constructeurs de toutes les entity où je veux pouvoir commenter c'est chiant.

J'ai vu qu'on pouvait utiliser le Service Container pour envoyer des arguments de manière flexible. Mais je ne peux pas transformer mes entities "commentable" en service nan ?