You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
herbarium/src/DataFixtures/AppFixtures.php

48 lines
1.4 KiB

<?php
namespace App\DataFixtures;
use App\Entity\Post;
use App\Entity\Species;
use App\Entity\User;
use DateTimeImmutable;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager;
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
class AppFixtures extends Fixture
{
public function __construct(
private readonly UserPasswordHasherInterface $passwordHasher
)
{
}
public function load(ObjectManager $manager): void
{
$user = (new User())->setEmail('test@test.fr');
$user->setPassword($this->passwordHasher->hashPassword($user, 'password'));
$manager->persist($user);
$faker = \Faker\Factory::create();
for ($i = 0; $i < 20; ++$i) {
$name = $faker->name();
$species = (new Species())
->setScientificName($name)
->setVernacularName($name)
->setRegion($faker->country());
$date = DateTimeImmutable::createFromMutable($faker->dateTime());
$post = (new Post())
->setFoundDate($date)
->setPublicationDate($date)
->setLatitude($faker->randomFloat())
->setLongitude($faker->randomFloat())
->setCommentary($faker->text())
-> setSpecies($species);
$manager->persist($species);
$manager->persist($post);
}
$manager->flush();
}
}