framework-web:symfony:td7

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:13] – [1.1- Route project/{idProject}/board] jcheronframework-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;gutter:false>
 +composer update
 +</sxh>
  
 ===== Objectifs ===== ===== Objectifs =====
   * Conception d'interfaces Web client riche   * Conception d'interfaces Web client riche
-  * Manipulations datas+  * Manipulations de données avec Doctrine
   * Utilisation de composants   * Utilisation de composants
  
Ligne 29: Ligne 35:
 {{:richclient:emberjs:td7:projectstoriesboard.png?900|Dashboard}} {{:richclient:emberjs:td7:projectstoriesboard.png?900|Dashboard}}
  
 +=== 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'attribut title de la step associée, et non l'id de step, comme on aurait pu s'y attendre.
 +
 +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>
 + protected function getStepsAndStories($project,StepRepository $stepRepo){
 +    $steps=$stepRepo->findAll();
 +    $stories=$project->getStories()->toArray();
 +    foreach ($steps as $step){
 +    $step->stories=array_filter($stories,function($story) use($step){
 +    return ($story->getStep()==$step->getTitle());
 +    });
 +    }
 +    return $steps;
 +}
 +</sxh>  
  
 === Comportement/conception de l'interface === === Comportement/conception de l'interface ===
Ligne 131: Ligne 159:
   * Une task **done** est barrée   * 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   * 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 =====
 +
 +
 +<html><div class="todo">
 +<div style="font-size:14px;font-weight: bold;">Si vous avez apprécié :</div>
 +<br>
 +<a class="github-button" href="https://github.com/symfony/symfony" data-icon="octicon-star" data-show-count="true" aria-label="Star symfony/symfony on GitHub">symfony thanks</a>
 +<br>
 +<a class="github-button" href="https://github.com/phpmv/phpmv-ui" data-icon="octicon-star" data-show-count="true" aria-label="Star phpmv/phpmv-ui on GitHub">phpmv-UI toolkit thanks</a>
 +<br>
 +<a class="github-button" href="https://github.com/Semantic-Org/Semantic-UI" data-icon="octicon-star" data-show-count="true" aria-label="Star Semantic-Org/Semantic-UI on GitHub">Semantic-UI thanks</a>
 +</html>
 +<html></div></html>
 +<html><script async defer src="https://buttons.github.io/buttons.js"></script></html>
 +
  • framework-web/symfony/td7.1522199592.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)