migrations/Version20221026180015.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use App\Entity\SectionalEvaluation;
  5. use App\Entity\SectionalEvaluationDescription;
  6. use Doctrine\DBAL\Schema\Schema;
  7. use Doctrine\Migrations\AbstractMigration;
  8. use Doctrine\ORM\EntityManager;
  9. use Symfony\Component\DependencyInjection\ContainerAwareInterface;
  10. use Symfony\Component\DependencyInjection\ContainerInterface;
  11. final class Version20221026180015 extends AbstractMigration implements ContainerAwareInterface
  12. {
  13.     private EntityManager $em;
  14.     private ContainerInterface $container;
  15.     public function setContainer(ContainerInterface $container null)
  16.     {
  17.         $this->container $container;
  18.         $this->em $container->get('doctrine')->getManager();
  19.     }
  20.     private const DATA = [
  21.         'Rapidité de déploiement' => [
  22.             'Plus de 9 mois',
  23.             '6 à 9 mois',
  24.             '3 à 6 mois',
  25.             '0 à 3 mois',
  26.         ],
  27.         'Qualité du support' => [
  28.             'Pas de support proposé',
  29.             'Des formations standards',
  30.             'Des formations standards + support de formation + mise à disposition d’un outil de ticketing',
  31.             'Des formations spécifique proposées, mise à disposition d’une hotline + un outil de ticketing',
  32.         ],
  33.     ];
  34.     public function getDescription(): string
  35.     {
  36.         return 'add description evaluation';
  37.     }
  38.     public function up(Schema $schema): void
  39.     {
  40.     }
  41.     public function postUp(Schema $schema): void
  42.     {
  43.         foreach (self::DATA as $sectionalEvaluationName => $sectionalEvaluationDescriptions) {
  44.             $sectionalEvaluation $this->em->getRepository(SectionalEvaluation::class)->findOneBy(['name' => $sectionalEvaluationName]);
  45.             if ($sectionalEvaluation) {
  46.                 $index 0;
  47.                 foreach ($sectionalEvaluationDescriptions as $sectionalEvaluationDescription) {
  48.                     ++$index;
  49.                     $sectionalEvaluation
  50.                         ->addDescription(
  51.                             (new SectionalEvaluationDescription())
  52.                                 ->setDescription($sectionalEvaluationDescription)
  53.                                 ->setLevel($index)
  54.                         );
  55.                     if (=== $index) {
  56.                         $index 0;
  57.                     }
  58.                 }
  59.                 $this->em->persist($sectionalEvaluation);
  60.             }
  61.         }
  62.         $this->em->flush();
  63.     }
  64.     public function down(Schema $schema): void
  65.     {
  66.     }
  67. }