Vous êtes sur la page 1sur 4

EXAMEN

Semestre : 1 2
Session : Principale Rattrapage

Module : Technologies Web2.0


Enseignants : UP Web
Classes : 3A
Documents autorisés : OUI NON Nombre de pages : 3
Calculatrice autorisée : OUI NON Internet autorisée : OUI NON
Date : 05/04/2023 Heure : 11h45 Durée : 01h30 Pages : 3

1.
a. ……… Architechture MVC. Model : Dossier src/Model ; View : Dossier Template ;
Controlelr : Dossier src/Controller
b. …ORM Doctrine, Permet d’utiliser differente commandes assurant la création des
entités, le mapping etc. et permet d’utiliser les méthodes du repository (recuperation et
recherche de données) et les methodes de l’entity manager ( création et manipulation
de données)
2.
a. Symfony console doctrine :database :create
Symfony console make : entity Association -> assocationName ->objective : float
Symfony console make :entity Donator ; -> name >donNature->donAmount float
donDate -> Date………………………………
b.
[1] : #[ORM\ManyToOne(inversedBy: 'donators')].
[2] #[ORM\OneToMany(mappedBy: 'association', targetEntity: Donator::class)]

c. …non,Nous pouvons avoir des classes qui représentent des objets qui peuvent servir
pour une logique metier sans pour autant les avoir comme tables dans notre base de
données………………………………………………………………………………
3.

a. ……………………erreur, il manque la condistion if


isSubmitted……………………………………………………………………………
…………………………………………………
b. Fichier addAssociation.php, méthode addAssociation():

#[Route(‘/addassociation’, name :’addassociation’;)]


public function addAssociation(Request $request,ManagerRegistry $mr): Response
{
$association=new Association();
$form=$this->createForm(AssociationType::class,$association);
$form->handleRequest($request);
if($form->isSubmitted()){
$em=$mr->getManager();
$association->setObjective(1000);
$em->persist($association);

1
$em->flush();
}

return $this->renderForm('donator/add.html.twig', [
'f' => $form,
]);

4.

a. Fichier associationController.php, méthode listAssociation() :

[Route('/listAssociation', name: 'listAssociation')]


public function listAssociations(AssociationRepository $repo): Response
{ [1] …$result=$repo->findAll();
return $this->render('donator/list.html.twig', [
'res' => $result,
]);

return $this->render('association/list.html.twig', [
'res' => $result ]); }

b. Fichier association/list.html.twig :

…<table border="2">
<tr>
<td>id
</td>
<td>Association Name
</td>
<td>objective
</td>
<td>Action
</td>
</tr>

{% for association in res %}


<tr>
<td>
{{association.id}} </td>
<td>
{{association.associationName}} </td>
<td>
{{association.objective}} </td>

</tr>

2
{% endfor %}

</table>…

5. a List.html.twig:

<td>
<a href="{{path('adddonator',{'id':association.id})}}"> donation</a> </td>
…………………………………………………………………………………………

b addDonator:
public function adddonator(Request $request,ManagerRegistry
$mr,$id,AssociationRepository $repo): Response
{
$association=$repo->find($id); [1]
$donator=new Donator(); [2]
$form=$this->createForm(DonatorType::class,$donator);
$form->handleRequest($request);
if($form->isSubmitted()){
[3]
$em=$mr->getManager();
$DonAmount=$donator->getDonAmount(); [4]
$restsold=$association->getObjective()-$DonAmount; [5]
$TMPassociation=$association->setObjective($restsold); [6]
$donator->setAssociations($TMPassociation); [7]
$em->persist($donator);
$em->flush();
}
return $this->renderForm('donator/adddonatreur.html.twig', [
'f'=>$form
]);

6.
if($association!=null){ [a]
if($donator->getDonAmount()>0){ [b]
$em=$mr->getManager();
$DonAmount=$donator->getDonAmount();
$restsold=$association->getObjective()-$DonAmount;
$TMPassociation=$association->setObjective($restsold);
$donator->setAssociations($TMPassociation);
$em->persist($donator);
$em->flush();
}else{
return new Response('This amount is below 0'); [b]
}
}else{
return new Response("No association found for the ID: ".$id); [a] }

3
}
..
7. Code de la méthode à ajouter dans associationRepository.php.
public function objectivenonatt()
{
return $this->createQueryBuilder('a')
->where('a.Objective>=0')
//->setParameter('1',0)
->getQuery()
->getResult();…

Vous aimerez peut-être aussi