kernel = $kernel; $this->minio = $minio; $this->output = new ConsoleOutput(); } public function load(ObjectManager $manager): void { // Création Répertoire Avatar $fs = new Filesystem(); $roottmp = $this->kernel->getProjectDir().'/var/tmp'; $fs->mkdir($roottmp.'/avatar'); // app:Init $this->writeln('app:Init'); $application = new Application($this->kernel); $application->setAutoExit(false); $input = new ArrayInput(['command' => 'app:Init']); $boutput = new BufferedOutput(); $application->run($input, $boutput); $manager->flush(); // Color $this->colorbg=$manager->getRepository("App\Entity\Config")->find("colorbgbodydark")->getValue(); $this->colorft=$manager->getRepository("App\Entity\Config")->find("colorfttitledark")->getValue(); // app:Synchro $manager->clear(); $this->writeln('app:Synchro'); $input = new ArrayInput(['command' => 'app:Synchro']); $boutput = new BufferedOutput(); $application->run($input, $boutput); // Assign id $metadata = $manager->getClassMetaData('App\Entity\Niveau01'); $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE); $metadata->setIdGenerator(new AssignedGenerator()); $metadata = $manager->getClassMetaData('App\Entity\Niveau02'); $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE); $metadata->setIdGenerator(new AssignedGenerator()); $metadata = $manager->getClassMetaData('App\Entity\Niveau03'); $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE); $metadata->setIdGenerator(new AssignedGenerator()); $metadata = $manager->getClassMetaData('App\Entity\Niveau04'); $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE); $metadata->setIdGenerator(new AssignedGenerator()); // Niveau 01 $this->writeln('Niveau01'); $csv = file_get_contents($this->kernel->getProjectDir().'/src/DataFixtures/niveau01.csv'); $tab = $this->csv_to_array($csv); foreach ($tab as $lig) { $niveau01 = $manager->getRepository('App\Entity\Niveau01')->find($lig['id']); if (!$niveau01) { $niveau01 = new Niveau01(); $niveau01->setId($lig['id']); $manager->persist($niveau01); } $niveau01->setLabel($lig['label']); $niveau01->setCode($lig['code']); $niveau01->setPostaladress($lig['postaladress']); $niveau01->setTelephonenumber($lig['telephonenumber']); $niveau01->setEmail($lig['email']); $niveau01->setApikey($lig['apikey']); $manager->flush(); } // Niveau 02 $this->writeln('Niveau02'); $csv = file_get_contents($this->kernel->getProjectDir().'/src/DataFixtures/niveau02.csv'); $tab = $this->csv_to_array($csv); foreach ($tab as $lig) { $niveau01 = $manager->getRepository('App\Entity\Niveau01')->findOneBy(['code' => $lig['codenv1']]); if (!$niveau01) { continue; } $niveau02 = $manager->getRepository('App\Entity\Niveau02')->find($lig['id']); if (!$niveau02) { $niveau02 = new Niveau02(); $niveau02->setId($lig['id']); $manager->persist($niveau02); } $niveau02->setLabel($lig['label']); $niveau02->setCode($lig['code']); $niveau02->setPostaladress($lig['postaladress']); $niveau02->setTelephonenumber($lig['telephonenumber']); $niveau02->setEmail($lig['email']); $niveau02->setApikey($lig['apikey']); $niveau02->setNiveau01($niveau01); $manager->flush(); } // Niveau 03 $this->writeln('Niveau03'); $csv = file_get_contents($this->kernel->getProjectDir().'/src/DataFixtures/niveau03.csv'); $tab = $this->csv_to_array($csv); foreach ($tab as $lig) { $niveau02 = $manager->getRepository('App\Entity\Niveau02')->findOneBy(['code' => $lig['codenv2']]); if (!$niveau02) { continue; } $niveau03 = $manager->getRepository('App\Entity\Niveau03')->find($lig['id']); if (!$niveau03) { $niveau03 = new Niveau03(); $niveau03->setId($lig['id']); $manager->persist($niveau03); } $niveau03->setLabel($lig['label']); $niveau03->setCode($lig['code']); $niveau03->setPostaladress($lig['postaladress']); $niveau03->setTelephonenumber($lig['telephonenumber']); $niveau03->setEmail($lig['email']); $niveau03->setApikey($lig['apikey']); $niveau03->setNiveau02($niveau02); $manager->flush(); } // Niveau 04 $this->writeln('Niveau04'); $csv = file_get_contents($this->kernel->getProjectDir().'/src/DataFixtures/niveau04.csv'); $tab = $this->csv_to_array($csv); foreach ($tab as $lig) { $niveau03 = $manager->getRepository('App\Entity\Niveau03')->findOneBy(['code' => $lig['codenv3']]); if (!$niveau03) { continue; } $niveau04 = $manager->getRepository('App\Entity\Niveau04')->find($lig['id']); if (!$niveau04) { $niveau04 = new Niveau04(); $niveau04->setId($lig['id']); $manager->persist($niveau04); } $niveau04->setLabel($lig['label']); $niveau04->setCode($lig['code']); $niveau04->setPostaladress($lig['postaladress']); $niveau04->setTelephonenumber($lig['telephonenumber']); $niveau04->setEmail($lig['email']); $niveau04->setApikey($lig['apikey']); $niveau04->setNiveau03($niveau03); $manager->flush(); } // User MODO $this->writeln('User Modo'); $userid = -99; $usercpt = 0; $niveau01s = $manager->getRepository('App\Entity\Niveau01')->findAll(); foreach ($niveau01s as $niveau01) { $userid = $userid - 1; $usercpt = $usercpt + 1; $username = 'modo'.str_pad($usercpt, 3, '0', STR_PAD_LEFT); $user = $manager->getRepository('App\Entity\User')->find($userid); if (!$user) { $user = new User(); $user->setId($userid); $manager->persist($user); $usermodo = new UserModo(); $usermodo->setUser($user); $usermodo->setNiveau01($niveau01); $manager->persist($usermodo); } $user->setUsername($username); $user->setPassword($username); $user->setRoles(['ROLE_MODO']); $user->setFirstname(str_pad($usercpt, 3, '0', STR_PAD_LEFT)); $user->setLastname('Modo'); $user->setEmail($username.'@noreply.fr'); $user->setIsvisible(true); $user->setIsactive(true); $user->setApikey($username); $user->setNiveau01($niveau01); $this->generateavatar($username); $user->setAvatar($username.'.png'); $manager->flush(); } // User MASTER $this->writeln('User Master'); $userid = -199; $usercpt = 0; $niveau02s = $manager->getRepository('App\Entity\Niveau02')->findAll(); foreach ($niveau02s as $niveau02) { $userid = $userid - 1; $usercpt = $usercpt + 1; $username = 'master'.str_pad($usercpt, 3, '0', STR_PAD_LEFT); $user = $manager->getRepository('App\Entity\User')->find($userid); if (!$user) { $user = new User(); $user->setId($userid); $manager->persist($user); } $user->setUsername($username); $user->setPassword($username); $user->setRoles(['ROLE_MASTER']); $user->setFirstname(str_pad($usercpt, 3, '0', STR_PAD_LEFT)); $user->setLastname('Master'); $user->setEmail($username.'@noreply.fr'); $user->setIsvisible(true); $user->setIsactive(true); $user->setApikey($username); $user->setNiveau01($niveau02->getNiveau01()); $user->setNiveau02($niveau02); $this->generateavatar($username); $user->setAvatar($username.'.png'); $manager->flush(); } // User MANAGER $this->writeln('User Manager'); $userid = -299; $usercpt = 0; $niveau03s = $manager->getRepository('App\Entity\Niveau03')->findAll(); foreach ($niveau03s as $niveau03) { $userid = $userid - 1; $usercpt = $usercpt + 1; $username = 'manager'.str_pad($usercpt, 3, '0', STR_PAD_LEFT); $user = $manager->getRepository('App\Entity\User')->find($userid); if (!$user) { $user = new User(); $user->setId($userid); $manager->persist($user); } $user->setUsername($username); $user->setPassword($username); $user->setRoles(['ROLE_MANAGER']); $user->setFirstname(str_pad($usercpt, 3, '0', STR_PAD_LEFT)); $user->setLastname('Manager'); $user->setEmail($username.'@noreply.fr'); $user->setIsvisible(true); $user->setIsactive(true); $user->setApikey($username); $user->setNiveau01($niveau03->getNiveau02()->getNiveau01()); $user->setNiveau02($niveau03->getNiveau02()); $user->setNiveau03($niveau03); $this->generateavatar($username); $user->setAvatar($username.'.png'); $manager->flush(); } // User USER $this->writeln('User User'); $userid = -399; $usercpt = 0; $niveau03s = $manager->getRepository('App\Entity\Niveau03')->findAll(); foreach ($niveau03s as $niveau03) { $userid = $userid - 1; $usercpt = $usercpt + 1; $username = 'user'.str_pad($usercpt, 3, '0', STR_PAD_LEFT); $user = $manager->getRepository('App\Entity\User')->find($userid); if (!$user) { $user = new User(); $user->setId($userid); $manager->persist($user); } $user->setUsername($username); $user->setPassword($username); $user->setRoles(['ROLE_USER']); $user->setFirstname(str_pad($usercpt, 3, '0', STR_PAD_LEFT)); $user->setLastname('User'); $user->setEmail($username.'@noreply.fr'); $user->setIsvisible(true); $user->setIsactive(true); $user->setApikey($username); $user->setNiveau01($niveau03->getNiveau02()->getNiveau01()); $user->setNiveau02($niveau03->getNiveau02()); $user->setNiveau03($niveau03); $this->generateavatar($username); $user->setAvatar($username.'.png'); $manager->flush(); } // app:Synchro $manager->clear(); $this->writeln('app:Synchro'); $input = new ArrayInput(['command' => 'app:Synchro']); $boutput = new BufferedOutput(); $application->run($input, $boutput); } private function writeln($string) { $this->output->writeln(' > '.$string.''); } private function csv_to_array($csv, $delimiter = ';', $enclosure = '', $escape = '\\', $terminator = "\n") { $r = []; $rows = explode($terminator, trim($csv)); $names = array_shift($rows); $names = str_getcsv($names, $delimiter, $enclosure, $escape); $nc = count($names); foreach ($rows as $row) { if (trim($row)) { $values = str_getcsv($row, $delimiter, $enclosure, $escape); if (!$values) { $values = array_fill(0, $nc, null); } @$r[] = array_combine($names, $values); } } return $r; } private function generateavatar($username) { $avatar = new InitialAvatar(); $image = $avatar->name($username)->height(100)->width(100)->background($this->colorbg)->color($this->colorft)->generate(); file_put_contents($this->kernel->getProjectDir().'/var/tmp/avatar/'.$username.'.png',$image->stream('png', 90)); $this->minio->upload($this->kernel->getProjectDir().'/var/tmp/avatar/'.$username.'.png', 'avatar/'.$username.'.png', true); } }