WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Développement d'une application de cartographie interactive sur internet.

( Télécharger le fichier original )
par Khadim Mbacké
Université Jean Monnet de Saint-Etienne - Master 2 Système d'Information Géographique  2015
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Annexes

Annexe I: organigramme du Parc national de la Vanoise (novembre 2014) 35

Annexe II: modèle de la base de données 36

Annexe III: création d'un bundle sur Symfony2 37

Annexe IV: mapping de la base de données avec Doctrine 38

Annexe V: exemple de contrôleurs 40

Annexe VI: extrait du module général de l'application (appCables) 41

Annexe VII: exemple de configuration d'un schéma 42

Annexe VIII: tableau des fonctionnalités 44

< / Développement d'une application de cartographie interactive sur internet >

Annexe I: organigramme du Parc national de la Vanoise (novembre 2014)

Université Jean Monnet de Saint-Etienne Khadim MBACKE

35

< / Développement d'une application de cartographie interactive sur internet >

Annexe II: modèle de la base de données

Université Jean Monnet de Saint-Etienne Khadim MBACKE

36

Université Jean Monnet de Saint-Etienne Khadim MBACKE

37

< / Développement d'une application de cartographie interactive sur internet >

Annexe III: création d'un bundle sur Symfony2

Je montre ici un exemple de la création d'un squelette ou bundle sur Symfony2:

php app/console generate:bundle

Cette commande génère une nouvelle structure de bundle et l'active automatiquement dans le projet.

Il faut ensuite suivre les instructions de la commande qui nous demandera par la suite le nom du bundle, le format des fichiers de configurations...

Le bundle sera automatiquement ajouté dans le projet, par défaut dans le répertoire src du projet :

Université Jean Monnet de Saint-Etienne Khadim MBACKE

38

< / Développement d'une application de cartographie interactive sur internet >

Annexe IV: mapping de la base de données avec Doctrine

Il faut lancer une commande linux* qui va créer l'image de la base de données dans le projet Symfony2 :

$ php app/console doctrine:mapping:convert yml

./src/PNV/CablesBundle/Resources/config/doctrine/metadata/orm --from-database -force

Le fichier de métadonnées généré ressemble à ça :

1. PNV\CablesBundle\Entity\AiresView:

2. type: entity

3. table: cables.vue_aires_aigle

4. schema: cables

5. repositoryClass: PNV\CablesBundle\Repositories\AiresView

6. id:

7. id:

8. type: integer

9. id: true

10. generator:

11. strategy: AUTO

12. fields:

13. commentaires:

14. type: string

15. lieu:

16. type: string

17. source:

18. type: string

19. geom:

20. type: json_array

Ce fichier représente l'image de la table ou de la vue dans la base de données et permet de générer par la suite les classes entités.

Les entités sont des classes métiers qui représentent chaque objet de notre application. Elles sont stockées par défaut dans le répertoire « Entity ». Pour les générer à partir d'une base existante, il faut exécuter deux requêtes :

$ php app/console doctrine:mapping:import PNVCablesBundles annotation $ php app/console doctrine:generate:entities PNVCablesBundles

La première requête va importer le schéma depuis la base de données pour construire les classes d'entité. Doctrine va ainsi transformer les champs des tables de la base en propriétés privées (private).

La deuxième génère des méthodes qu'on appelle les « getters » et les « setters » pour ces propriétés déclarées. Le getter est un accesseur qui permet de récupérer la valeur d'une

Université Jean Monnet de Saint-Etienne Khadim MBACKE

39

< / Développement d'une application de cartographie interactive sur internet >

propriété donnée (GetId par exemple) et le setter est un mutateur qui lui permet de définir cette valeur (SetId par exemple). Le fichier entité généré ressemble à ça :

1. <?php

2.

3. namespace PNV\CablesBundle\Entity;

4.

5. use Doctrine\ORM\Mapping as ORM;

6.

7. /**

8. * AiresView

9. */

10. class AiresView

11. {

12. /**

13. * @var integer

14. */

15. private $id;

16.

17. /**

18. * @var string

19. */

20. private $commentaires;

21.

22. /**

23. * Get id

24. *

25. * @return integer

26. */

27. public function getId()

28. {

29. return $this->id;

30. }

31.

32. /**

33. * Set commentaires

34. *

35. * @param string $commentaires

36. * @return AiresView

37. */

38. public function setCommentaires($commentaires)

39. {

40. $this->commentaires = $commentaires;

41.

42. return $this;

43. }

44.

45. /**

46. * Get commentaires

47. *

48. * @return string

49. */

50. public function getCommentaires()

51. {

52. return $this->commentaires;

53. }

54. }

Université Jean Monnet de Saint-Etienne Khadim MBACKE

40

< / Développement d'une application de cartographie interactive sur internet >

Annexe V: exemple de contrôleurs ? Exemple de type NomController.php

1. <?php

2.

3. namespace PNV\CablesBundle\Controller;

4.

5. use Symfony\Bundle\FrameworkBundle\Controller\Controller;

6.

7. use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;

8.

9. use Symfony\Component\HttpFoundation\JsonResponse;

10. use Symfony\Component\HttpFoundation\Request;

11.

12. use Commons\Exceptions\DataObjectException;

13. use Commons\Exceptions\CascadeException;

14.

15. use Symfony\Component\HttpFoundation\BinaryFileResponse;

16.

17.

18. class AiresViewController extends Controller{

19.

20. // path: GET /cables/aires

21. public function listAction(){

22. /*

23. * retourne la liste des aires "cables"

24. */

25. $ss = $this->get('airesService');

26.

27. return new JsonResponse($ss->getList());

28. }

29. }

?

1.

Exemple de type NomConfigController.php

class AiresConfigController extends Controller{

2.

 
 
 

3.

 

// path : GET cables/config/aires/form

 

4.

 

public function getFormAction(){

 

5.

 
 
 

6.

');

$file = file_get_contents(__DIR__ .

'/../Resources/clientConf/aires/form.yml

7.

 

$out = Yaml::parse($file);

 

8.

 
 
 

9.

 

return new JsonResponse($out);

 

10.

 

}

 
 

Ce fichier appel ainsi d'autres fichiers de configuration dans lequel sont définies les schémas pour nos listes, détails et formulaires.

< / Développement d'une application de cartographie interactive sur internet >

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"L'imagination est plus importante que le savoir"   Albert Einstein