Fixtures
Créer des données pour initialiser Symfony ou pour les tests
Documentation
Faker pour générer automatique de fausses données
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