/** * {@inheritDoc} */ public function load(ObjectManager $manager) { $entity = new Division(); $entity->setGrade("CP-CE1"); $entity->setHeadTeacher("Mme LEMOUE Laurence"); $entity->setSchool($this->getReference("school-nddf")); $manager->persist($entity); $this->setReference('division-lemoue', $entity); $entity = new Division(); $entity->setGrade("CE2-CM1"); $entity->setHeadTeacher("Mme CATTEEU Anne-Sophie"); $entity->setSchool($this->getReference("school-nddf")); $manager->persist($entity); $this->setReference('division-catteeu', $entity); $entity = new Division(); $entity->setGrade("CE1"); $entity->setHeadTeacher("Mle NOUAILLE-DEGORCE Valérie "); $entity->setSchool($this->getReference("school-rg")); $manager->persist($entity); $this->setReference('division-nouaille', $entity); $entity = new Division(); $entity->setGrade("CE2"); $entity->setHeadTeacher("Mme LUCIEN Nathalie "); $entity->setSchool($this->getReference("school-rg")); $manager->persist($entity); $this->setReference('division-lucien', $entity); $entity = new Division(); $entity->setGrade("GS"); $entity->setHeadTeacher("Mme PICHODO Marie-Pierre "); $entity->setSchool($this->getReference("school-ecureuils")); $manager->persist($entity); $this->setReference('division-pichodo', $entity); $manager->flush(); }
protected function execute(InputInterface $input, OutputInterface $output) { $file = $input->getArgument('file'); $em = $this->getContainer()->get('doctrine')->getManager(); if (!$this->askConfirmation($input, $output, '<question>Careful, database will be purged. Do you want to continue y/N ?</question>', false)) { return; } $purger = new ORMPurger($em); $purger->setPurgeMode(ORMPurger::PURGE_MODE_DELETE); $executor = new ORMExecutor($em, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->purge(); // Load users $stream = fopen($file, 'r'); while ($line = fgets($stream)) { if (strpos($line, 'COPY multipass_users (id') !== FALSE) { break; } } $userManager = $this->getUserManager(); $userAdmin = $userManager->createUser(); $userAdmin->setPlainPassword('admin'); $userAdmin->setEnabled(true); $userAdmin->setEmail('*****@*****.**'); $userAdmin->setRoles(array('ROLE_SUPER_ADMIN')); $userAdmin->setFirstname('Romain'); $userAdmin->setLastname('Coeur'); $userAdmin->setPhone('0628974930'); $userManager->updateUser($userAdmin); $users = array('admin' => $userAdmin); while ($line = fgets($stream)) { $data = explode(' ', $line); if ($data[0] == "\\.\n") { break; } $entity = $userManager->createUser(); $entity->setUsername($data[1]); $entity->setUsernameCanonical($data[1]); $entity->setEmail($data[1]); $entity->setEmailCanonical($data[1]); $entity->setEnabled(true); $entity->setPlainPassword('wild1234'); $entity->setPassword('9908e42e69c19bc0e6c0ce1bf05b381fbc94ca10aa7e6b648815d676248f8a3fe2ee124f7d9d375e9f909036e45cc9e766e3c9369655c1db1f331e71c17bc2c9'); $userManager->updateUser($entity); $users[$data[0]] = $entity; } $em->flush(); $output->writeln(sprintf(' <comment>></comment> <info>%s users loaded</info>', count($users))); // Add home data to users rewind($stream); while ($line = fgets($stream)) { if (strpos($line, 'COPY multipass_homes (id') !== FALSE) { break; } } $nb = 0; while ($line = fgets($stream)) { $data = explode(' ', $line); if ($data[0] == "\\.\n") { break; } $user = $users[$data[11]]; $user->setFirstname($data[1]); $user->setLastname($data[2]); $user->setPhone($data[3]); $user->setTelephoneSecondaire($data[4]); $user->setAdresse($data[5]); $user->setCodePostal($data[6]); $user->setCommune($data[7]); $user->setModeDePaiement($data[8]); $user->setGender($data[9]); $user->setCaf($data[10]); $em->persist($user); $nb++; } $em->flush(); $output->writeln(sprintf(' <comment>></comment> <info>%s users updated</info>', $nb)); // Load schools rewind($stream); while ($line = fgets($stream)) { if (strpos($line, 'COPY multipass_schools (id') !== FALSE) { break; } } $schools = array(); while ($line = fgets($stream)) { $data = explode(' ', $line); if ($data[0] == "\\.\n") { break; } $entity = new School(); $entity->setName($data[1]); $entity->setAdress($data[2]); $em->persist($entity); $schools[$data[0]] = $entity; } $em->flush(); $output->writeln(sprintf(' <comment>></comment> <info>%s schools loaded</info>', count($schools))); // Load divisions rewind($stream); while ($line = fgets($stream)) { if (strpos($line, 'COPY multipass_classrooms (id') !== FALSE) { break; } } $divisions = array(); while ($line = fgets($stream)) { $data = explode(' ', $line); if ($data[0] == "\\.\n") { break; } $entity = new Division(); $entity->setSchool($schools[$data[10]]); $gradeAndTeacher = explode(' DE ', $data[1]); $entity->setGrade($gradeAndTeacher[0]); $entity->setHeadTeacher($gradeAndTeacher[1]); $em->persist($entity); $divisions[$data[0]] = $entity; } $em->flush(); $output->writeln(sprintf(' <comment>></comment> <info>%s divisions loaded</info>', count($divisions))); // Load children rewind($stream); while ($line = fgets($stream)) { if (strpos($line, 'COPY multipass_children (id') !== FALSE) { break; } } $nb = 0; while ($line = fgets($stream)) { $data = explode(' ', $line); if ($data[0] == "\\.\n") { break; } if ($data[5] == '\\N') { continue; } $entity = new Eleve(); $entity->setPrenom($data[1]); $entity->setNom($data[2]); $entity->setDateDeNaissance(new \DateTime($data[3])); $entity->setUser($users[$data[4]]); $entity->setDivision($divisions[$data[5]]); $habits = array(); if ($data[8] == 't') { $habits[] = "lundi"; } if ($data[9] == 't') { $habits[] = "mardi"; } if ($data[10] == 't') { $habits[] = "jeudi"; } if ($data[11] == 't') { $habits[] = "vendredi"; } $entity->setHabits($habits); $entity->setAllergie($data[13]); $entity->setRegimeSansPorc($data[14]); $em->persist($entity); $nb++; } $em->flush(); $output->writeln(sprintf(' <comment>></comment> <info>%s divisions loaded</info>', $nb)); fclose($stream); $output->writeln(sprintf('<info>done</info>')); }