1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
| <?php
namespace App\DataFixtures;
use Faker\Factory;
use App\Entity\User;
use App\Entity\Course;
use App\Entity\Category;
use Cocur\Slugify\Slugify;
use Doctrine\Persistence\ObjectManager;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
class AppFixtures extends Fixture
{
private $encoder;
public function __construct(UserPasswordEncoderInterface $encoder)
{
$this->encoder = $encoder;
}
public function load(ObjectManager $manager)
{
// Mise en place
$faker = Factory::create('fr_FR');
$slugifier = new Slugify();
// Mise en place des catégories
$categories = [
"Musique",
"Piano",
"Guitare",
"Chant",
"Batterie",
"Violon",
"Danse"
];
for ($i = 0; $i < count($categories); ++$i) {
$category = new Category();
$title = $categories[$i];
$slug = $slugifier->slugify($title);
$category
->setTitle($title)
->setSlug($slug);
$manager->persist($category);
$categories[$i] = $category;
}
// Mise en place des utilisateurs
$users = [];
for ($i = 1; $i < mt_rand(30, 40); $i++) {
$user = new User();
$firstName = $faker->firstName();
$lastName = $faker->lastName();
$email = $faker->email;
$password = $this->encoder->encodePassword($user, 'aaaaaa');
$createdAt = $faker->dateTimeBetween('-2 years', 'now');
$user
->setFirstName($firstName)
->setLastName($lastName)
->setEmail($email)
->setPassword($password)
->setCreatedAt($createdAt);
$manager->persist($user);
$users[] = $user;
}
// Mise en place des annonces
for ($i = 1; $i <= mt_rand(50, 60); $i++) {
$ad = new Course();
$title = $faker->words(mt_rand(4, 6), true);
$slug = $slugifier->slugify($title);
$content = $faker->paragraphs(mt_rand(3, 6), true);
$price = mt_rand(15, 80);
$author = $users[mt_rand(0, count($users) - 1)];
$publishedAt = $faker->dateTimeBetween('-2 years', 'now');
$lat = $faker->latitude();
$lng = $faker->longitude();
$postalCode = $faker->postcode();
$city = $faker->city();
$address = $faker->address();
$category = $categories[mt_rand(0, count($categories) - 1)];
$ad
->setTitle($title)
->setSlug($slug)
->setContent($content)
->setPrice($price)
->setAuthor($author)
->setPublishedAt($publishedAt)
->setLat($lat)
->setLng($lng)
->setPostalCode($postalCode)
->setCity($city)
->setAddress($address)
->setCategory($category);
$manager->persist($ad);
}
$manager->flush();
}
} |
Partager