Cours de Rémi JarjatCours de Rémi Jarjat
  • Liste des cours
  • Culture numérique
  • Git
    • Terminologie
    • Avant de commencer
    • Créer un dépôt (local)
    • Enregistrer des changements
    • Des branches
    • Mise en commun du travail
    • Annuler des changements
    • Réécrire l'historique
    • Des outils pour se simplifier Git
    • Exercices
    • Exemples pratiques
  • Linux
    • Installation
    • Historique
    • Rangement des fichiers
    • Les processus
    • Commandes de base
    • Commandes avancées
    • /linux/6-other-technologies.html
    • Exercices
    • Correction des exercices
  • PHP
    • Environnement de travail
    • Bases du PHP
    • Tests et boucles
    • Procédures et fonctions
    • Interagir avec l'utilisateur
    • La temporisation de sortie
    • PHP Doc et PSR
    • PHP Orienté objet
    • Héritage et objets
    • Factorisation
    • Manipuler la BdD avec PDO (PHP Data Object)
    • Architecture MVC
    • Webservices REST
    • Exercices - Bases
    • Exercices - Séparer en plusieurs fichiers
    • Exercices - POST et SESSION
    • Exercices - Panier et validation
    • Exercices - Objets
    • Exercices - BdD avec PDO
    • Projet - montage d'ordinateurs
    • Projet - Personnages de Jeux de Rôle
  • Symfony
    • Installer Symfony et son environnement de travail
    • Structure et utilisation d'un projet
    • Le routing
    • Les controllers
    • Twig
    • Les services et l'injection de dépendances
    • Doctrine et la BdD
    • Formulaires
    • Les traductions
    • Event listeners/subscribers
    • Connexion et sécurisation
    • Bundles
    • Easy Admin Bundle
    • API Platform
    • Pense-bêtes
    • Symfony au quotidien
    • Travailler avec Docker
    • Projet : annonces de SPA / éleveurs
    • Exercices
  • Javascript
    • Les bases du langage
    • Manipulation logique
    • Le DOM
    • JQuery
    • Ajax
    • Programmation orientée objet
    • Webpack
    • Outils utiles
    • Révisions
  • Serveur Lamp
  • Déploiement
    • Des outils et manières de faire
    • Déploiement par FTP
    • Wordpress
    • Intégrer Git dans le processus
    • GitHub Pages pour déployer facilement
    • Symfony et Angular
  • Docker
  • Intégration continue
  • Sécurité informatique

Bundles

  • Installer un bundle
  • Configurer un bundle
  • Utiliser un bundle
  • Exemples de bundles utiles

Introduction en vidéo :

Un bundle est une librairie PHP spécifique à Symfony. Comme toute librairie, un bundle permet d'ajouter des fonctionnalités à votre application, mais en l'intégrant dans vos outils de travail de Symfony (par exemple : ajout de fonctions pour Twig, pour Doctrine, etc.) et évite d'avoir à re-coder des éléments que l'on retrouve d'un projet à l'autre.

Pour en trouver de nouveaux, vous pouvez utiliser plusieurs sources :

  • La documentation de Symfony sur le sujet
  • Une recherche sur GitHub
  • Une recherche Internet sur la fonctionnalité que vous cherchez (pagination, administration, etc.)
  • Des articles partagés sur le net
  • Des collègues
  • etc.

En général, le plus important est de suivre la documentation fournie par le bundle (elle est la seule à faire foi) pour l'installation, la configuration et l'utilisation. Je vais énoncer ici quelques éléments génériques pouvant servir pour tous les bundles.

Installer un bundle

Normalement, l'installation se fait via composer, avec une commande comme composer require nom-du-vendor/nom-du-bundle.

Certaines documentations indiquent de modifier un fichier app/AppKernel.php, ce n'est nécessaire que si vous n'utilisez pas Symfony Flex (et normalement, depuis Symfony 3.4, vous utilisez Symfony Flex) et vous devriez pouvoir l'ignorer.

Lors de l'installation, il peut toutefois être utile de vérifier le fichier config/bundles.php, pour vous assurer que votre bundle est bien appelé (ce qui devrait être fait automatiquement lors de l'installation).

Configurer un bundle

Lors de l'installation, si votre bundle fourni une configuration, vous devriez avoir un fichier portant le nom du bundle dans le dossier config/packages/. Si ça n'est pas le cas et que vous devez créer le fichier, il faut le nommer comme la racine du YAML.

La documentation m'indique une configuration comme ceci :

knp_paginator:
    # ... contenu de la configuration ...

Je vais alors devoir créer un fichier config/packages/knp_paginator.yaml pour contenir ma configuration.

Utiliser un bundle

Dans cette section, je n'ai littéralement rien à dire, puisque tout dépend du bundle que vous avez installé 😉 .

Exemples de bundles utiles

  • ApiPlatform vous permet de créer une API rapidement dans votre Symfony, à partir de vos entités.
  • EasyAdmin pour générer un espace d'administration pour vos entités
  • Doctrine extensions pour ajouter des comportements à vos entités (Timestampable, Sluggable, Translatable, etc.). La documentation vers les différents comportements : https://github.com/doctrine-extensions/DoctrineExtensions/tree/main/doc
  • VichUploader pour mettre en ligne et gérer des images liées à vos entités
  • Knp Paginator pour gérer la pagination de vos listes
  • Knp Menu pour gérer vos menus sous forme d'objets propres
  • A2lixTranslationFormBundle pour ajouter des champs de gestion de traduction

Pour un exemple d'installation et d'utilisation d'un bundle, je vous recommande la section suivante, traitant de EasyAdminBundle.

Dernières mise à jour :
Prev
Connexion et sécurisation
Next
Easy Admin Bundle