Onita

Quiz symfony

Jul 30th, 2021 (edited)
304
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.     # CAS n°1 : Quelle problème risque t-on de rencontrer ?  
  3.    $em = $this->getDoctrine()->getManager();
  4.     $ids = [1, 2, 3];
  5.     $chantier = "Test 1";
  6.     $numero = "1";
  7.     $numero1 = "2";
  8.     foreach ($ids as $key => $id) {
  9.         $entity = $em->getRepository(Commande::class)->find($id);
  10.         $entity->setChantier($chantier);
  11.  
  12.         $em->flush();
  13.         $em->clear();
  14.  
  15.         if($id == 2) {
  16.             $entity->setNumero($numero);
  17.         } else {
  18.  
  19.             $entity->setNumero($numero1);
  20.         }
  21.         $em->flush();
  22.     }
  23.  
  24.  
  25.  
  26.     # CAS n°2 : Que pouvez-vous dire de ce code ?
  27.  
  28.  
  29.      function DevisClientMail($age = 30, $taille = 165) {
  30.         $em = $this->getDoctrine()->getManager();
  31.         $mailer = Swift_Mailer::newInstance();
  32.  
  33.         $qb = $em
  34.             ->createQueryBuilder()
  35.             ->select('q')
  36.             ->from("wbx\AppBundle\Entity\ProfilClient", "q")
  37.             ->getQuery()
  38.             ->getResult();
  39.  
  40.  
  41.         foreach ($qb as $key => $q) {
  42.             if(($age = 10 && $taille > 150) || ($age = 20 && $taille < 190) ) {
  43.                 $message = Swift_Message::newInstance()
  44.                     ->setSubject("Nouveau devis")
  45.                     ->setSender('f.nikou@test.com')
  46.                     ->setFrom(array('f.nikou@test.com' => 'francis'))
  47.                     ->setTo($q->getEmail())
  48.                     ->setBody('Vous avez un nouveau devis');
  49.                 $mailer->send($message);
  50.             }
  51.         }
  52.  
  53.  
  54.     }
  55.  
  56.  
  57.  
  58.     # CAS n°3 : Vous devez changer la valeur d’un champ en base de données dont les ID sont compris entre 1 et 100  tous les matins à 10H, comment faites-vous ?
  59.  
  60.  
  61.     # CAS n°4 : Cette fonction a un problème de performance, quels sont les axes d'amélioration : La table ProfilClient comporte 15 002 322 enregistrements
  62.  
  63.  
  64.  
  65.      function ProfilClienLoad() {
  66.         $em = $this->getDoctrine()->getManager();
  67.  
  68.         $qb = $em
  69.             ->createQueryBuilder()
  70.             ->select('q')
  71.             ->from("wbx\AppBundle\Entity\ProfilClient", "q")
  72.             ->getQuery()
  73.             ->getResult();
  74.  
  75.         foreach ($qb as $key => $q) {
  76.             foreach ($q->getDevis() as $z => $value) {
  77.                 $value->setNumero($z);
  78.             }
  79.         }
  80.  
  81.  
  82.         $em->flush();
  83.     }
  84.  
  85.  
  86.    
RAW Paste Data