Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Développement d’applications web
Les données
2
Besoins Conserver certaines données Pouvoir modifier ces données
Informations sur les utilisateurs, articles, commentaires Pouvoir modifier ces données Corrections, etc. Pouvoir supprimer certaines données
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 Problématique: stockage et modification d’informations. Présentation BDR Problématique: lien objet, BDR Solution manuelle -> ORM Doctrine case of study
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.
5
Exemple Users Id Nom Prénom Login Password Role John Doe Jdoe aDZ!ko1…
John Doe Jdoe aDZ!ko1… admin …
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.
7
Fonctionnement Adresses Id Numéro Rue CP Ville Pays Nom 42 Dufour
42 Dufour 75000 Paris France Personnelle …
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ère Id User_id Numéro Rue CP Ville Pays Nom 5 42 Dufour 75000 Paris France Personnelle …
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’ …
10
Systèmes existant MySQL PostgreSQL Oracle Etc.
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
12
Utilisation: php L’ancienne méthode:
13
Utilisation: php La nouvelle méthode:
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
15
Solutions Le PDO le permet:
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
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
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
19
Étude de cas Commentaire Id Auteur Approuvé Article Date de création
Date de mise à jour
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“
21
Définition des objets
22
Définition des objets
23
Définition des objets
24
Définition des objets
25
Définition des objets
26
Définition des objets
27
Définition des objets
28
Définition des objets
29
Définition des objets
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
31
Création d’un objet et stockage en base de données
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
33
Questions ?
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.