Upload
ferris-atkinson
View
63
Download
3
Tags:
Embed Size (px)
DESCRIPTION
Développement d’applications web. Les données. Besoins. Conserver certaines données Informations sur les utilisateurs, articles, commentaires Pouvoir modifier ces données Corrections, etc. Pouvoir supprimer certaines données. Bases de données relationnelles. - PowerPoint PPT Presentation
Citation preview
2
Besoins
Conserver certaines 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
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
Id Nom Prénom Login Password
Role
0 John Doe Jdoe aDZ!ko1…
admin
… … … … … …
… … … … … …
Users
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
Id Numéro
Rue CP Ville Pays Nom
0 42 Dufour 75000 Paris France
Personnelle
… … … … … … …
… … … … … … …
Adresses
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
… … … … … … … …
… … … … … … … …
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’ …
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
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
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 Commentaire 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“
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
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