Un bundle est un répertoire avec une structure déterminée. Ce répertoire contient donc du code qui va répondre à un besoin métier spécifique. Les bundles que je vais vous présenter ci-dessous correspondent à des besoins métiers généraux comme la gestion d’utilisateur, etc.
FOS (ou Friends Of Symfony)
FOS est un groupe de personnes qui collaborent afin de proposer et maintenir des bundles qui peuvent être utilisés dans le développement sous Symfony2. Le but est de les regrouper et ainsi de proposer à un seul endroit une bibliothèque de bundles.
https://github.com/FriendsOfSymfony
FosUserBundle
Le FosUserBundle permet de gérer assez facilement les utilisateurs et leurs rôles. Il peut se configurer avec Propel, Doctrine, CouchDB et MongoDB. Il se combine très bien avec le firewall de symfony.
https://github.com/FriendsOfSymfony/FOSUserBundle
JsRoutingBundle
Ce bundle permet d’exposer facilement les routes gérées par Symfony au client. Ainsi javascript peut avoir accès aux routes.
https://github.com/FriendsOfSymfony/FOSJsRoutingBundle
Vespolina
Vespolina est un projet qui permet de mettre en place très rapidement une plateforme e-commerce. Il se base sur un ensemble de bundles (comme les écrans d’administration, la notion de commerce et la notion de boutique). Il utilise aussi le FOSUserBundle.
https://github.com/vespolina
Sylius
De la même manière que Verspolina, Sylius est un projet pour mettre en place rapidement un site e-commerce en Symfony 2. Il se base sur le Symfony CMF pour la gestion des contenus et utilise aussi le FOSUserBundle.
https://github.com/Sylius/Sylius
GenemuFormBundle
GenemuFormBundle permet d’ajouter de nouvelles fonctionnalités à votre formulaire : Il permet d’utiliser très simplement des select un peu plus poussés, des captcha, des tinymce, des colorpicker, etc. C’est très utilisé pour améliorer l’ergonomie d’un formulaire.
https://github.com/genemu/GenemuFormBundle
BazingaFakerBundle
Ajouter des données pour des tests est assez fastidieux, c’est pour cela que ce bundle a été créé. Il utilise Faker pour générer de fausses données et BazingaFakerBundle pour les faire persister.
https://github.com/willdurand/BazingaFakerBundle
NelmioApiDocBundle
Ce bundle permet de générer très simplement la documentation de votre API REST. La documentation est écrite lors de votre développement via des annotations. On y accède depuis une url.
https://github.com/nelmio/NelmioApiDocBundle
LexikMaintenanceBundle
Ce bundle permet de mettre en place une page de maintenance en appelant une commande depuis la console. Cette page renvoie un statut 503. On a la possibilité d’autoriser certaines IPs à accéder au site.
https://github.com/lexik/LexikMaintenanceBundle
BazingaJsTranslateBundle
Ce bundle permet d’exposer les traductions gérées par Symfony au client. Ainsi, on peut accéder depuis javascript aux traductions et donc proposer des messages traduits via javascript.
https://github.com/willdurand/BazingaJsTranslationBundle
AsseticBundle
Ce bundle permet de gérer plus ou moins facilement les assets (medias, javascript, css) en php.
https://github.com/kriswallsmith/assetic
DoctrineBundle / PropelBundle
Doctrine et Propel sont des ORMs pour gérer facilement les accès à la base de données. Depuis Symfony 2.1, Doctrine n’est plus présent par défaut dans le core de symfony afin que chacun des développeurs puissent choisir leur propre ORM.
https://github.com/doctrine/DoctrineBundle
https://github.com/propelorm/PropelBundle
PagerFantaBundle
Ce bundle utilise PagerFanta qui permet de gérer très facilement la pagination en PHP. Il se plug très simplement avec Twig et Twitter Bootstrap notamment.
https://github.com/whiteoctober/WhiteOctoberPagerfantaBundle
CacheBundle
CacheBundle permet de gérer très simplement le cache. Il supporte APC, Xcache, le cache fichiers, etc.
https://github.com/winzou/CacheBundle
KnpMenuBundle
KnpMenuBundle intègre la librairie KnpMenu sous Symfony2, qui permet de gérer très facilement des menus, assez pratique pour les back office.
https://github.com/KnpLabs/KnpMenuBundle
Autres
Vous pouvez voir l’ensemble des bundles disponibles pour la communauté Symfony2 sur les sites suivants :
http://knpbundles.com/
http://symfohub.com/bundles
https://packagist.org/search/?type=bundle