Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
framework-web:symfony:td7 [2018/03/28 03:04] – [1.1- Route project/{idProject}/board] jcheron | framework-web:symfony:td7 [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 9: | Ligne 9: | ||
* Suite Projet **boards** | * Suite Projet **boards** | ||
* Application gestion de projets SCRUM | * Application gestion de projets SCRUM | ||
+ | |||
+ | Commencer, à partir du dossier de votre projet par : | ||
+ | |||
+ | <sxh bash; | ||
+ | composer update | ||
+ | </ | ||
===== Objectifs ===== | ===== Objectifs ===== | ||
* Conception d' | * Conception d' | ||
- | * Manipulations | + | * Manipulations |
* Utilisation de composants | * Utilisation de composants | ||
Ligne 29: | Ligne 35: | ||
{{: | {{: | ||
+ | === Base de données === | ||
+ | La base de données utilisée a été volontairement dénormalisée : | ||
+ | |||
+ | Par exemple, la table **story** possède un champ **step** mémorisant l' | ||
+ | |||
+ | Il n'y a donc pas de relation effective de type père/fils dans la base entre **step et story**, ce qui implique : | ||
+ | * qu'il n'y a pas de membre step de type Step dans la classe **Story** | ||
+ | * pas plus qu'il n'y a de collection de **stories** dans chaque instance de **Step** | ||
+ | |||
+ | Pour charger les instances de Story dans chaque Step, il faut donc le faire programmatiquement : | ||
+ | <sxh php> | ||
+ | | ||
+ | $steps=$stepRepo-> | ||
+ | $stories=$project-> | ||
+ | foreach ($steps as $step){ | ||
+ | $step-> | ||
+ | return ($story-> | ||
+ | }); | ||
+ | } | ||
+ | return $steps; | ||
+ | } | ||
+ | </ | ||
=== Comportement/ | === Comportement/ | ||
Ligne 55: | Ligne 83: | ||
' | ' | ||
' | ' | ||
+ | </ | ||
+ | == Exemple d' | ||
+ | |||
+ | <sxh php; | ||
+ | $grid=$this-> | ||
+ | foreach ($steps as $step){ | ||
+ | $col=$grid-> | ||
+ | $segTitle=new HtmlSegment("",'< | ||
+ | $segTitle-> | ||
+ | $segContent=new HtmlSegment(" | ||
+ | $segContent-> | ||
+ | $segContent-> | ||
+ | $segTitle-> | ||
+ | foreach ($step-> | ||
+ | $segContent-> | ||
+ | } | ||
+ | $col-> | ||
+ | } | ||
</ | </ | ||
Ligne 94: | Ligne 140: | ||
$js=$this-> | $js=$this-> | ||
</ | </ | ||
+ | |||
+ | Exemple avec utilisation de javascript pour compléter l'url : | ||
+ | <sxh php; | ||
+ | $js=$this-> | ||
+ | </ | ||
+ | |||
+ | ==== -- Route Stories/ | ||
+ | |||
+ | |||
+ | <wrap mytodo> | ||
+ | |||
+ | <wrap info> | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **Comportement de l' | ||
+ | |||
+ | * Une task **done** est barrée | ||
+ | * Les cases à cocher permettent de faire passer une tâche de non réalisée (done=false) à réalisée (done=true) et inversement | ||
+ | |||
+ | ===== Thanks ===== | ||
+ | |||
+ | |||
+ | < | ||
+ | <div style=" | ||
+ | <br> | ||
+ | <a class=" | ||
+ | <br> | ||
+ | <a class=" | ||
+ | <br> | ||
+ | <a class=" | ||
+ | </ | ||
+ | < | ||
+ | < | ||