Je déplace mon ancienne base de code vers le framework Symfony 2.2.Où placer la logique métier est la couche modèle Symfony 2?
Dans mon ancien code, mon entité article avait une méthode getUrl(), qui renvoyait une URL pour l'article en cours.
Dans Symfony, je dois utiliser le service Router pour générer de telles URL.
Je ne peux pas accéder au routeur depuis l'intérieur de l'entité, car c'est une mauvaise pratique et pas vraiment supportée par le framework.
Je peux appeler le routeur à partir du modèle Twig lui-même à l'aide de Twig helper chemin() et fournir tous les arguments (de l'instance article) nécessaires pour construire l'URL. Mais cette approche n'est pas très bonne, parce que si je vais décider de changer les règles de formatage d'URL - je vais devoir trouver tous ces appels et les réécrire (pas très DRY). Je veux vraiment sauver l'encapsulation de logique métier ici et ne pas tirer tout le courage à la couche de vue.
Comment dois-je procéder dans cette situation?
Merci bras! Je pensais à cette approche, j'avais juste besoin d'une confirmation de quelqu'un de plus expérimenté) Je ne suis pas sûr que je sois vraiment à l'aise avec la gestion des entités de modèle d'une autre classe, mais il semble que ce n'est qu'une option viable. –
Si vous venez d'un ORM Active Record, cela ressemble vraiment à une approche étrangère. Mais au fil du temps, vous apprécierez la séparation des préoccupations et vous vous demanderez comment vous avez déjà réussi ;-) –
@SlavaFominII C'est une bonne solution mais, si vous avez le même objet "modèle", placez-les dans le même Manger ou vous aurez avoir un gestionnaire (donc, un service) pour chaque entité de votre application et ce, parfois, n'est pas souhaitable – DonCallisto