Troisième chapitre d'une formation Symfony 2,
l'Objectif de ce chapitre peut se résumer dans les points suivants :
- Présentation de l'ORM Doctrine 2
- Génération d'entité et utiliser les annotations pour modéliser une base de donnée relationnelle
- Écriture et Lecture des données.
4. Symfony 2.0
Les modèles = Les entités
ORM (Object-Relational Mapping ) : Fait la relation entre
les données orientées objet et les données relationnelles.
Les Entités sont des classes métiers qui décrivent chaque
objet de notre application.
4
5. Doctrine 2 , EntityManger et
repository
Produit 1
Produit 2
$em->getRepository
(‘GestionProduitsBu
nle: Produit’)
Categorie
1
Categorie
2
$em->getRepository
(‘GestionProduitsBunle:
Categorie’)
$em = $doctrine->getEntityManager()
$doctrine = $this->getDoctrine ()
5
Les Repository
récupèrent les entités
depuis la base de
données
il en existe un par
EntityManager permet de
entité.
:
gérer la persistance
des objets
exécuter les requêtes
SQL
Doctrine est un service
qui gère :
La connexion avec la
base de données
Le gestionnaire
d'entités (EntityManager)
6. Créer une entité (Modèle)
Pour
6
matérialiser les tables en BDD , il faut Créer
l’entité : :
php app/console doctrine:generate:entity
9. Créer une entité (Modèle)
Ce n’est pas encore finis :
1- Configurer les informations de BDD dans le fichier
app/config/parametrs.ini
2- s’assurer que le paramètre auto_mapping est à true Dans le fichier
app/config/config.yml
3- Création de la bdd : php app/console doctrine:databse:create
4- Génération des tables : php app/console doctrine:schema:create
NB: Modification des tables possible via la commande
php app/console doctrine:schema:update --force
9
10. Relation entre entités
Notion de propriétaire et d’inverse
10
Relation à sens unique ou à double sens
Unidirectionnalité et de Bidirectionnalité
Exemple
Référence des annotations possibles :
http://docs.doctrine-project.org/en/2.0.x/reference/annotations-reference.html
11. Relation entre entités :
OneToMany
11
targetEntity : L’entité en relation avec l’entité en
question
mappedBy : il s’agit de l’attribute de l’entité cible qui
illustre la relation entre les deux entités
NB : Obligatoirement dans l’entité target il faut avoir une définition
d’attribut avec le mot clé ManyToOne
12. Relation entre entités :
ManyToOne
12
targetEntity : L’entité en relation avec l’entité en
question
inversedBy : il s’agit de l’attribute de l’entité cible qui
illustre la relation entre les deux entités
NB : Obligatoirement dans l’entité target il faut avoir une définition
d’attribut avec le mot clé OneToMany
13. Relation entre entités :
ManyToMany
13
targetEntity : L’entité en relation avec l’entité en
question
inversedBy : il s’agit de l’attribute de l’entité cible qui
illustre la relation entre les deux entités
14. Enregistrer des données
en Base
1- Instancier un objet de la classe d’entité :
2- Enregistrer en base de donnée
14
15. Récupérer des données à
partir d’une entité 1/3
Exécuter une requête SQL
Récupérer l’article d’id 5
15
16. Récupérer des données à
partir d’une entité 2/3
Récupérer tous les enregistrements
Définir des conditions de requêtes
16