From cce3e1cfb85b036ba8a7948c2ae30397730c3807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sun, 18 Jun 2023 22:06:42 +0200 Subject: [PATCH] Specify order in which the data fixtures should be loaded --- src/DataFixtures/AppFixtures.php | 37 ---------------------- src/DataFixtures/DataStructureFixtures.php | 13 ++++++-- src/DataFixtures/LabelProfileFixtures.php | 7 ++++ src/DataFixtures/PartFixtures.php | 10 +++++- src/DataFixtures/UserFixtures.php | 10 +++++- 5 files changed, 36 insertions(+), 41 deletions(-) delete mode 100644 src/DataFixtures/AppFixtures.php diff --git a/src/DataFixtures/AppFixtures.php b/src/DataFixtures/AppFixtures.php deleted file mode 100644 index dff739ae..00000000 --- a/src/DataFixtures/AppFixtures.php +++ /dev/null @@ -1,37 +0,0 @@ -. - */ - -declare(strict_types=1); - -namespace App\DataFixtures; - -use Doctrine\Bundle\FixturesBundle\Fixture; -use Doctrine\Persistence\ObjectManager; - -class AppFixtures extends Fixture -{ - public function load(ObjectManager $manager): void - { - // $product = new Product(); - // $manager->persist($product); - - $manager->flush(); - } -} diff --git a/src/DataFixtures/DataStructureFixtures.php b/src/DataFixtures/DataStructureFixtures.php index 5abf6d6f..a2043bdb 100644 --- a/src/DataFixtures/DataStructureFixtures.php +++ b/src/DataFixtures/DataStructureFixtures.php @@ -31,12 +31,14 @@ use App\Entity\Parts\Manufacturer; use App\Entity\Parts\MeasurementUnit; use App\Entity\Parts\Storelocation; use App\Entity\Parts\Supplier; +use App\Entity\UserSystem\User; use Doctrine\Bundle\FixturesBundle\Fixture; +use Doctrine\Common\DataFixtures\DependentFixtureInterface; use Doctrine\ORM\EntityManagerInterface; use Doctrine\Persistence\ObjectManager; use InvalidArgumentException; -class DataStructureFixtures extends Fixture +class DataStructureFixtures extends Fixture implements DependentFixtureInterface { public function __construct(protected EntityManagerInterface $em) { @@ -49,7 +51,7 @@ class DataStructureFixtures extends Fixture { //Reset autoincrement $types = [AttachmentType::class, Project::class, Category::class, Footprint::class, Manufacturer::class, - MeasurementUnit::class, Storelocation::class, Supplier::class, ]; + MeasurementUnit::class, Storelocation::class, Supplier::class,]; foreach ($types as $type) { $this->createNodesForClass($type, $manager); @@ -106,4 +108,11 @@ class DataStructureFixtures extends Fixture $manager->persist($node2_1); $manager->persist($node1_1_1); } + + public function getDependencies(): array + { + return [ + UserFixtures::class + ]; + } } diff --git a/src/DataFixtures/LabelProfileFixtures.php b/src/DataFixtures/LabelProfileFixtures.php index 5b41bb73..c0eb85cd 100644 --- a/src/DataFixtures/LabelProfileFixtures.php +++ b/src/DataFixtures/LabelProfileFixtures.php @@ -110,4 +110,11 @@ class LabelProfileFixtures extends Fixture $manager->flush(); } + + public function getDependencies(): array + { + return [ + PartFixtures::class, + ]; + } } diff --git a/src/DataFixtures/PartFixtures.php b/src/DataFixtures/PartFixtures.php index 6b765bc8..3efb8dc8 100644 --- a/src/DataFixtures/PartFixtures.php +++ b/src/DataFixtures/PartFixtures.php @@ -55,10 +55,11 @@ use App\Entity\PriceInformations\Pricedetail; use Brick\Math\BigDecimal; use DateTime; use Doctrine\Bundle\FixturesBundle\Fixture; +use Doctrine\Common\DataFixtures\DependentFixtureInterface; use Doctrine\ORM\EntityManagerInterface; use Doctrine\Persistence\ObjectManager; -class PartFixtures extends Fixture +class PartFixtures extends Fixture implements DependentFixtureInterface { public function __construct(protected EntityManagerInterface $em) { @@ -132,4 +133,11 @@ class PartFixtures extends Fixture $manager->persist($part); $manager->flush(); } + + public function getDependencies(): array + { + return [ + DataStructureFixtures::class + ]; + } } diff --git a/src/DataFixtures/UserFixtures.php b/src/DataFixtures/UserFixtures.php index f329d1a2..171f671e 100644 --- a/src/DataFixtures/UserFixtures.php +++ b/src/DataFixtures/UserFixtures.php @@ -24,11 +24,12 @@ namespace App\DataFixtures; use App\Entity\UserSystem\User; use Doctrine\Bundle\FixturesBundle\Fixture; +use Doctrine\Common\DataFixtures\DependentFixtureInterface; use Doctrine\ORM\EntityManagerInterface; use Doctrine\Persistence\ObjectManager; use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; -class UserFixtures extends Fixture +class UserFixtures extends Fixture implements DependentFixtureInterface { public function __construct(protected UserPasswordHasherInterface $encoder, protected EntityManagerInterface $em) { @@ -66,4 +67,11 @@ class UserFixtures extends Fixture $manager->flush(); } + + public function getDependencies(): array + { + return [ + GroupFixtures::class, + ]; + } }