UserFixtures::load()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 19
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 15
nc 2
nop 1
dl 0
loc 19
rs 9.7666
c 1
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace App\DataFixtures;
6
7
use App\Entity\Profile;
8
use App\Entity\User;
9
use App\Transformer\UserTransformer;
10
use Doctrine\Bundle\FixturesBundle\Fixture;
11
use Doctrine\Persistence\ObjectManager;
12
13
final class UserFixtures extends Fixture
14
{
15
    private $transformer;
16
17
    public function __construct(UserTransformer $transformer)
18
    {
19
        $this->transformer = $transformer;
20
    }
21
22
    public function load(ObjectManager $manager): void
23
    {
24
        foreach ($this->getUserData() as [$fullName, $username, $phone, $email, $roles]) {
25
            $user = new User();
26
            $user->setUsername($username);
27
            $user->setPassword($username);
28
            $user->setEmail($email);
29
            $user->setRoles($roles);
30
            $user->setProfile(
31
                (new Profile())
32
                    ->setFullName($fullName)
33
                    ->setPhone($phone)
34
            );
35
            $user->setEmailVerifiedAt(new \DateTime('now'));
36
            $user = $this->transformer->transform($user);
37
            $manager->persist($user);
38
            $this->addReference($username, $user);
39
        }
40
        $manager->flush();
41
    }
42
43
    private function getUserData(): array
44
    {
45
        return [
46
            // $cityData = [$fullName, $username, $phone, $email, $roles];
47
            ['John Smith', 'admin', '0(0)99766899', '[email protected]', ['ROLE_ADMIN', 'ROLE_USER']],
48
            ['Rhonda Jordan', 'user', '0(0)99766899', '[email protected]', ['ROLE_USER']],
49
        ];
50
    }
51
}
52