faker = FakerFactory::create('fr_FR'); } public function getOrder() { return 16400; } public function load(ObjectManager $manager) { $persons = $this->container->get('doctrine.orm.entity_manager') ->getRepository('ChillPersonBundle:Person') ->findAll(); foreach ($persons as $person) { $activityNbr = mt_rand(0, 3); for ($i = 0; $i < $activityNbr; ++$i) { echo 'Creating an activity type for : ' . $person . "\n"; $activity = $this->newRandomActivity($person); $manager->persist($activity); } } $manager->flush(); } public function newRandomActivity($person) { $activity = (new Activity()) ->setUser($this->getRandomUser()) ->setPerson($person) ->setDate($this->faker->dateTimeThisYear()) ->setDurationTime($this->faker->dateTime(36000)) ->setType($this->getRandomActivityType()) ->setScope($this->getRandomScope()) ->setAttendee($this->faker->boolean()); $usedId = []; for ($i = 0; mt_rand(0, 4) > $i; ++$i) { $reason = $this->getRandomActivityReason($usedId); $usedId[] = $reason->getId(); $activity->addReason($reason); } return $activity; } /** * Return a random activityReason. * * @return \Chill\ActivityBundle\Entity\ActivityReason */ private function getRandomActivityReason(array $excludingIds) { $reasonRef = LoadActivityReason::$references[array_rand(LoadActivityReason::$references)]; if (in_array($this->getReference($reasonRef)->getId(), $excludingIds, true)) { // we have a reason which should be excluded. Find another... return $this->getRandomActivityReason($excludingIds); } return $this->getReference($reasonRef); } /** * Return a random activityType. * * @return \Chill\ActivityBundle\Entity\ActivityType */ private function getRandomActivityType() { $typeRef = LoadActivityType::$references[array_rand(LoadActivityType::$references)]; return $this->getReference($typeRef); } /** * Return a random scope. * * @return \Chill\MainBundle\Entity\Scope */ private function getRandomScope() { $scopeRef = LoadScopes::$references[array_rand(LoadScopes::$references)]; return $this->getReference($scopeRef); } /** * Return a random user. * * @return \Chill\MainBundle\Entity\User */ private function getRandomUser() { $userRef = array_rand(LoadUsers::$refs); return $this->getReference($userRef); } }