Optimized fixtures

This commit is contained in:
Kevin Frantz
2018-11-23 22:09:29 +01:00
parent 4066634af2
commit e16f2a44a8
4 changed files with 94 additions and 3 deletions

View File

@@ -6,21 +6,31 @@ use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
use App\Entity\User;
use FOS\UserBundle\Doctrine\UserManager;
use App\Entity\UserInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
/**
* Never execute this fixture on a livesystem!
*
* @author kevinfrantz
*/
class DummyFixtures extends Fixture
class DummyFixtures extends Fixture implements ContainerAwareInterface
{
private $container;
public function setContainer(ContainerInterface $container = null)
{
$this->container = $container;
}
public function load(ObjectManager $manager)
{
$this->addTestUser();
$manager->persist($this->getTestUser());
$manager->flush();
}
protected function addTestUser(): void
protected function getTestUser(): UserInterface
{
/**
* @var UserManager
@@ -35,5 +45,7 @@ class DummyFixtures extends Fixture
$testUser->setPlainPassword('test');
$testUser->setEnabled(true);
$userManager->updateUser($testUser);
return $testUser;
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace App\DataFixtures;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
use App\Entity\Source\Primitive\Text\TextSource;
use App\Entity\Source\Primitive\Text\TextSourceInterface;
use App\DBAL\Types\SystemSlugType;
class SourceFixtures extends Fixture
{
public function load(ObjectManager $manager)
{
$manager->persist($this->getImpressum());
$manager->flush();
}
private function getImpressum(): TextSourceInterface
{
$source = new TextSource();
$source->setText('Example Impressum');
$source->setSlug(SystemSlugType::IMPRINT);
return $source;
}
}