Développement dapplications web Les données 1. Besoins Conserver certaines données Informations...

33
S Développement d’applications web Les données 1

Transcript of Développement dapplications web Les données 1. Besoins Conserver certaines données Informations...

Page 1: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

1

S

Développement d’applications web

Les données

Page 2: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

2

Besoins

Conserver certaines données Informations sur les utilisateurs, articles,

commentaires

Pouvoir modifier ces données Corrections, etc.

Pouvoir supprimer certaines données

Page 3: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

3

Bases de données relationnelles

Permettent la gestion des données

Permettent d’établir des liens entre les données

Les données sont stockées sous forme de « tables », pas sous forme d’objets

Page 4: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

4

Fonctionnement

Chaque table représente un type de donnée Utilisateur, articles, etc.

Chaque champs de la table représente un propriété de la donnée Nom, prénom, date de naissance, login, mot de

passe, etc.

Page 5: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

5

Exemple

Id Nom Prénom Login Password

Role

0 John Doe Jdoe aDZ!ko1…

admin

… … … … … …

… … … … … …

Users

Page 6: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

6

Fonctionnement

Si on veut ajouter des adresses à nos utilisateur ? Une adresse est composée de plusieurs chose

Numéro, rue, ville, code postal, …

Un utilisateur peut avoir plusieurs adresses

=> Il faut créer une table pour stocker les adresses.

Page 7: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

7

Fonctionnement

Id Numéro

Rue CP Ville Pays Nom

0 42 Dufour 75000 Paris France

Personnelle

… … … … … … …

… … … … … … …

Adresses

Page 8: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

8

Fonctionnement

Comment savoir à quel utilisateur correspond une adresse ? Il faut ajouter un champs dans la table adresse

contenant l’Id de l’utilisateur à qui appartient l’adresse.

On parle de clé étrangèreId User_id

Numéro

Rue CP Ville Pays Nom

0 5 42 Dufour

75000

Paris France

Personnelle

… … … … … … … …

… … … … … … … …

Page 9: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

9

Fonctionnement

Toute action sur la base se fait via SQL SQL = Structured Query Language Ex:

CREATE TABLE users; SELECT login,password FROM users WHERE

login=‘Jdoe’ …

Page 10: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

10

Systèmes existant

MySQL

PostgreSQL

Oracle

Etc.

Page 11: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

11

Utilisation

Les langages nous fournissent des fonctions permettant:

De se connecter au système de gestion de la base de donnée

D’envoyer une requête SQL et d’en récupérer le résultat

De se déconnecter du système de gestion de la base de donnée

Page 12: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

12

Utilisation: php

L’ancienne méthode:

Page 13: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

13

Utilisation: php

La nouvelle méthode:

Page 14: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

14

Problème

On récupère les données sous forme de tableau [Id: 1, Nom: Doe, Prénom: John, …]

Nous voulons utiliser des objets

Page 15: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

15

Solutions

Le PDO le permet:

Page 16: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

16

Limitations

Si notre objet contient une liste d’autres objets Ex: Un utilisateur avec plusieurs adresses On utilise alors une autre table pour récupérer les

adresses Il faudra aller chercher les adresses à l’aide d’une

autre requête soi-même et mettre à jour l’objet user.

L’interface PDO ne permet de sauvegarder directement un objet dans la base de donnée

Page 17: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

17

Les ORM

ORM = Object Relational Maping

Servent à faire le lien entre la base de données et nos objets représentant les données dans notre code

Prennent en charge la création, la modification et la suppression d’objets

Permettent la gestion d’objets “complexes“ Notre utilisateur avec plusieurs adresses par

exemple

Page 18: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

18

Étude de cas

Les articles de blog et leurs commentaires.

Article: Id Titre Auteur Contenu Commentaires Date de création Date de mise à jour

Page 19: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

19

Étude de cas

Commentaire Id Auteur Commentaire Approuvé Article Date de création Date de mise à jour

Page 20: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

20

Lien entre les objets

Un article contient plusieurs commentaires On parle de relation “one to many“

Chaque commentaire est associé à un unique article On parle de relation “many to one“

Page 21: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

21

Définition des objets

Page 22: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

22

Définition des objets

Page 23: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

23

Définition des objets

Page 24: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

24

Définition des objets

Page 25: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

25

Définition des objets

Page 26: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

26

Définition des objets

Page 27: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

27

Définition des objets

Page 28: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

28

Définition des objets

Page 29: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

29

Définition des objets

Page 30: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

30

Création des tables dans la base de données

Une simple commande de la console symfony nous permet de créer nos tables:

Si nous changeons plus tard des champs dans une classe, la base de données peut-être mise à jour via la commande:

php app/console doctrine:database:create

php app/console doctrine:schema:update --force

Page 31: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

31

Création d’un objet et stockage en base de

données

Page 32: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

32

Avantages

On ne fait plus de requêtes directement sur la base de données

On récupère toujours des objets consistant et de classes que l’on a défini

On peut utiliser une conception objet de manière native

Page 33: Développement dapplications web Les données 1. Besoins Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier.

33

Questions ?