< Programmation PHP < Symfony

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

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

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).
  • Il peut avoir un .yaml de configuration dans config/packages à créer automatiquement à l'installation grâce à une classe étendant ConfigurationInterface[2].

Principaux bundles

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

Sensio

Cette section est vide, pas assez détaillée ou incomplète.

FOS

Cette section est vide, pas assez détaillée ou incomplète.

KNP

Cette section est vide, pas assez détaillée ou incomplète.

Références

Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.