encoder = $encoder; } /** * {@inheritdoc} */ public function load(ObjectManager $manager) { $this->loadUsers($manager); } /** * @param ObjectManager $manager */ private function loadUsers(ObjectManager $manager) { $passwordEncoder = $this->encoder; foreach ($this->getUserDefinition() as $userData) { $user = new User(); $user ->setAlias($userData[0]) ->setTitle($userData[1]) ->setUsername($userData[2]) ->setEmail($userData[3]) ->setRoles([$userData[4]]) ->setAvatar($userData[5]) ->setEnabled($userData[6]) ->setPassword($passwordEncoder->encodePassword($user, self::DEFAULT_PASSWORD)) ; $preference = new UserPreference(); $preference->setName(UserPreference::HOURLY_RATE); $preference->setValue(rand(0, 100)); $preference->setUser($user); $user->setPreferences([$preference]); $manager->persist($user); } $manager->flush(); } /** * @return array */ protected function getUserDefinition() { return [ [ 'Clara Haynes', 'CFO', 'clara_customer', 'clara_customer@example.com', 'ROLE_CUSTOMER', 'https://www.gravatar.com/avatar/00000000000000000000000000000000?d=monsterid&f=y', true ], [ 'John Doe', 'Developer', self::USERNAME_USER, 'john_user@example.com', 'ROLE_USER', 'https://www.gravatar.com/avatar/00000000000000000000000000000000?d=retro&f=y', true ], // inactive user to test login [ 'Chris Deactive', 'Developer (left company)', 'chris_user', 'chris_user@example.com', 'ROLE_USER', 'https://www.gravatar.com/avatar/00000000000000000000000000000000?d=retro&f=y', false ], [ 'Tony Maier', 'Head of Sales', self::USERNAME_TEAMLEAD, 'tony_teamlead@example.com', 'ROLE_TEAMLEAD', 'https://en.gravatar.com/userimage/3533186/bf2163b1dd23f3107a028af0195624e9.jpeg', true ], // no avatar to test default image macro [ 'Anna Smith', 'Administrator', self::USERNAME_ADMIN, 'anna_admin@example.com', 'ROLE_ADMIN', null, true ], // no alias to test twig username macro [ null, 'Super Administrator', self::USERNAME_SUPER_ADMIN, 'susan_super@example.com', 'ROLE_SUPER_ADMIN', '/build/images/default_avatar.png', true ] ]; } }