Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Tout savoir sur un Bundle sous Symfony

Par Sylva ETOKABEKA Publié le 18/08/2015 à 23:01:26 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Qui est-ce qu'un bundle dans Symfony

Un Bundle est un répertoire dans un projet symfony qui intègre une structure bien définie, ce répertoire permet d’implémenter plusieurs fonctionnalités qui peuvent être utilisées dans d’autre projet symfony. On peut voir un Bundle comme un plug-in dans symfony. Ce framework propose des milliers de Bundles réutilisables quasiment dans tous les projets symfony qu’on peut avoir. il existe même des sites qui proposent de télécharger des Bundles, il y’a par exemple : KnpBundle. Pour créer un bundle on peut procéder de trois manières:

Via Composer on utilisant cette commande

$ composer.phar require nomdubundle/exemple-bundle "version"

En ligne de commande

Ou manuellement.

De cette manière, on peut aussi créer un bundle directement dans notre projet. C’est-à-dire en créant des dossiers et fichiers manuellement, mais qui s’avèrent être plus long et peut générer des erreurs dans le projet.

Pourquoi utiliser un Bundle

Comme on le dit souvent «  On n’invente pas la roue » utiliser un Bundle peut nous apporter plusieurs avantages et surtout de nous faire gagner beaucoup de temps, ça permet aussi de travailler sur une base solide, car la plupart des Bundles existants ont été construits pour être flexible et réutilisable en plus d'être sécurisé. Il existe plusieurs bundle qui peuvent aider à développer un projet efficacement notamment FOSUserBundle qui permet entre autres de faire une gestion assez poussée des utilisateurs d'un site par exemple créer des groupes d'utilisateurs avec des rôles différents. Il y'a aussi SonataAdminBundle qui est un puissant système d'Administration de site sous symfony.

Architecture d’un Bundle

Un bundle a généralement toujours la même structure, image ci-dessous, mais ne se limite pas qu’au dossier indiqué on peut aussi rajouter des dossiers dans le bundle afin d’organiser le projet plus proprement et de faire en sorte que chaque partie du dossier soit dédier aune tache particulière.

Éléments d’un bundle

Command : dans ce répertoire, on aura les classes qui vont permettre de construire des commandes du Bundle qui vont être utilisées dans le terminal dans le projet.

Controller : c’est ici qu'il aura des classes et fonctions appelées controlleur. Le rôle d'un contrôleur est de créer et de retourner une réponse aux vues de l'application

DependanceInjection : dans ce dossier, il y'a des méthodes qui vont permettre de gérer la dépendance d'injection. Ceci permet surtout de rendre utilisable nos services symfony dans toute l'application et de laisser à symfony de s'occuper des taches répétitives qu'on pourra faire notamment instancier des classes.

Resources

- config : Contiens tous les fichiers de configuration du Bundle (service, routing)

- doc : éventuelles documentations du bundle

- translation : Ce dossier va contenir les différents fichiers de traduction du bundle si l'application est développée en plusieurs langues.

- public : Ce répertoire contient tous les astes du Bundle (css, js, images etc.)

- views toutes les vues qui vont être retournées par le contrôller.

Entity : le modèle de l'application il y'aura des classes qui vont contenir des attributs et leurs getters/setters pour gérer la couche métier du Bundle ainsi de faire correspondre chaque attribut de la classe par un champ de la table de la base de données tout ceci est géré par doctrine.

Tests : Dossier qui contient tous les tests de l'application.

Bonnes pratiques

En PHP un Bundle est considéré comme un espace de nom, car ce dernier doit suivre les standards d’interopérabilité technique pour les espaces de nom.

- Utiliser uniquement des noms alphanumériques et des underscore

- Utiliser des noms de notation dite “CamelCase”

- Suffixer toujours le nom du bundle avec “Bundle”.

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels