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.
48 lines
1.4 KiB
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();
|
|
}
|
|
}
|