Les Fixturesfixtures
Les fixtures vont
nous permettre de remplir notre table produit grâce à une commande
sur le terminal. Cela dit, tout ce que nous allons coder dans la
fixture peut très bien être placé dans
l’action d’un contrôleur.
Le seul avantage des fixtures est cette commande
sur le terminal qui permet d’exécuter toutes les
fixtures existantes d’un seul coup.
Pour utiliser les fixtures, il faut installer
un package supplémentaire. Si vous vous rendez sur Symfony
Recipes Server : https://flex.symfony.com et
que vous recherchez fixture, vous trouverez ce package :
doctrine/doctrine-fixtures-bundle.
On voit qu’on peut utiliser l’alias :
orm-fixtures.
Nous allons donc exécuter sur le
terminal :
composer require --dev orm-fixtures
La commande a créé un dossier
src/DataFixtures et, à l’intérieur,
un fichier exemple AppFixtures.php.
Toutes les fixtures héritent de la
classe Fixture du FixtureBundle, qui est une classe abstraite
(voir chapitre Le langage Objet, section Les classes abstraites
et les interfaces - Les classes abstraites). La méthode load() de la classe Fixture est aussi
abstraite, il faudra donc la redéfinir dans toutes les fixtures.
C’est cette méthode qui
sera exécutée automatiquement lorsqu’on
lancera les fixtures.
Nous allons créer une Fixture propre à notre
entité Produit.
Créez, dans src/DataFixtures,
un fichier ProduitFixtures.php ...