Fixtures

Créer des données pour initialiser Symfony ou pour les tests

Documentation

Fixtures

Ordonner l'ordre d'appel des fixtures

Pour éviter que les fixtures ne soient appelée dans l'ordre alphabétique, il faut donner un ordre d'exécution. Pour cela, on va définir des dépendances entre les fichiers.

use Doctrine\Common\DataFixtures\DependentFixtureInterface;

class GroupFixtures extends Fixture implements DependentFixtureInterface
{
    // ...
    public function getDependencies()
    {
        return array(
            UserFixtures::class,
        );
    }
}

Créer une référence

Une référence permet de partager des objets entre les fixtures.

Dans la première fixture, créer une constante qui sera la référence de l'objet partagé. Puis utiliser la fonction addReference pour associer l'objet à la référence.

// ...
public const ADMIN_USER_REFERENCE = 'admin-user';

// ...
// Dans la fonction load()
$this->addReference(self::ADMIN_USER_REFERENCE, $userAdmin);

Pour récupérer cet objet dans une autre fixture, il suffit d'appeler la fonction getReference.

// ...
$this->getReference(UserFixtures::ADMIN_USER_REFERENCE)

Commandes

Créer un fichier de fixtures

php bin/console make:fixtures

Charger les fixtures

php bin/console doctrine:fixtures:load
// --append pour ajouter les datas à la base de données
//  --purge-with-truncate pour faire le bourrin

Dernière mise à jour