Agence web et solutions IT, Experts Symfony contact@avanim-prod.com

Les bonnes pratiques de Symfony – Les bundles

17 décembre 2015 Siegfried Lefebvre Symfony, Technologies de développement Étiquettes : , , , 0 Comments
Bonjour à tous ! Je suis heureux d’entamer une première série d’articles qui auront pour but de parler du framework Symfony 2, et plus précisément des bonnes pratiques à suivre. Cette série se repose sur l’idée que vous connaissez déjà Symfony 2, que vous l’avez déjà pratiqué un peu ou beaucoup, et que vous souhaitez connaître les pièges à éviter et les bonnes manières à suivre.

Je précise que ce qui va suivre sera d’un point de vue subjectif à partir d’une certaine expérience dans le développement web avec le framework Symfony 2. Chacun est après tout libre d’utiliser le framework de la manière dont il le souhaite, cependant on finit toujours par se rendre compte qu’il est mieux de suivre telle ou telle manière plutôt qu’une autre.

Allez c’est parti !

Les bundles

Qu’est-ce qu’un bundle Symfony ?

Il s’agit d’un ensemble de fichiers et répertoires permettant d’implémenter une ou plusieurs fonctionnalités à votre projet Symfony. Quand on apprend à utiliser Symfony, c’est une des premières choses que l’on voit : La structure d’un projet.

Pour faire simple, votre projet sera toujours découpé en un ou plusieurs bundles. L’erreur qui revient souvent est de découper notre projet en plusieurs bundles par métier ! Oui, nous l’avons tous fait une fois.

Et pourtant ce n’est pas conseillé.

Pourquoi

Tout simplement parce que les bundles sont prévus pour pouvoir être utilisés indépendamment de vos projets.

En effet, les bundles sont censés pouvoir être utilisés sur différents projets, sans devoir faire des modifications internes dessus. Pour être plus claire, vous aurez un bundle pour gérer la partie Blog de votre site, un autre bundle qui s’occupera de la partie Utilisateur etc…

C’est une des raisons pour laquelle vous trouverez énormément de bundles sur la toile !

La partie métier

Mais qu’en est-il de votre partie métier me demandez-vous ? Ici, il y a différentes manières de procéder.

La plupart du temps, on crée un bundle métier qu’on appelle en général AppBundle ou MainBundle. Ce sera votre bundle qui représentera le coeur de votre métier, c’est là que se trouvera toutes vos entités, vos contrôleurs et autres sources métier.
Ce bundle se servira donc de tous les autres bundles. Il faut bien faire attention à ne pas créer des relations inverses entre votre bundle métier et vos autres bundles. En effet, sinon vous ne respecterez plus le concept de la réutilisation des bundles tiers.

De plus, vous pourriez même sortir quelques uns de vos services en dehors de l’application métier s’il s’agit par exemple de services qui peuvent être utilisés en dehors d’un contexte métier mais qui ne font pas forcément parti d’un contexte d’un de vos autres bundles mis en place.

Conclusion

Voilà donc pour cette première partie qui reste assez courte.

Chacun procède ainsi à manière. Le plus important reste de faire en sorte d’avoir une partie métier qui va utiliser d’autres bundles tiers en prenant garde que ces-derniers ne fassent pas de même avec votre bundle/application métier.

Submit a comment