Programmation PHP/Symfony/Bundles

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


Dans Symfony, on appelle bundle une bibliothèque prévue pour être installée dans Symfony comme module complémentaire au framework.

Configurer un bundle[modifier | modifier le wikicode]

Après installation avec composer, il doit généralement être configuré dans le dossier config/ par un fichier YAML à son nom. Pour connaitre les configurations possibles :

php bin/console config:dump mon_bundle

La classe du bundle est instanciée dans :

config/bundles.php

Pour l'activer ou le désactiver de certains environnements, il suffit de l'ajouter un paramètre. Ex :

<?php

return [
    // A instancier tout le temps
    Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
    // A instancier seulement si dans le .env, APP_ENV=dev ou APP_ENV=test (les autres sont "false" par défaut)
    Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
    // A ne pas instancier dans les environnements de dev
    Sentry\SentryBundle\SentryBundle::class => ['prod' => true],
];

Créer un bundle[modifier | modifier le wikicode]

Par rapport à une application classique, la création d'un bundle possède des particularités du fait qu'il n'est prévu pour être utilisé que comme dépendance d'applications tierces[1]. Par exemple :

  • Ses namespaces doivent démarrer par le nom du vendor et se terminer par le mot Bundle (ex : Symfony\Bundle\FrameworkBundle).
  • Il doit contenir un fichier point d'entrée dans sa racine (ex : FrameworkBundle.php).

Principaux bundles[modifier | modifier le wikicode]

Packagist propose une liste des bundles Symfony les plus utilisés[2].

Sensio[modifier | modifier le wikicode]

FOS[modifier | modifier le wikicode]

KNP[modifier | modifier le wikicode]

Références[modifier | modifier le wikicode]