SlideShare une entreprise Scribd logo
1
Symfony 2.0

ABDELKADER RHOUATI
ABDELKADER.RHOUATI@GMAIL.COM
COURS SF 2.0 - 2013

2
3

Chapitre 3 :
Les modèles en Doctrine
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
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)
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
Créer une entité (Modèle)

7
Entité : Liaison vers la table

8
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
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
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
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
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
Enregistrer des données
en Base
1- Instancier un objet de la classe d’entité :

2- Enregistrer en base de donnée

14
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
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
Récupérer des données à
partir d’une entité 3/3


Utiliser les « Query builder »

17

Contenu connexe

PDF
Ch06
PPSX
diagramme de classe
ODP
Uml: Diagrammes de classes -- Concepts De Base 41
PPTX
Symfony 2 : chapitre 1 - Présentation Générale
PPT
Symfony 2 : chapitre 2 - Les vues en Twig
PPT
Symfony 2 : chapitre 4 - Les services et les formulaires
PPTX
Presentation Symfony2
PDF
symfony : Un Framework Open-Source pour les Professionnels
Ch06
diagramme de classe
Uml: Diagrammes de classes -- Concepts De Base 41
Symfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 4 - Les services et les formulaires
Presentation Symfony2
symfony : Un Framework Open-Source pour les Professionnels

En vedette (19)

PDF
Symfony2: 30 astuces et bonnes pratiques
ODP
Presentation du framework symfony
PPTX
Introduction au business modèle des applications mobile
PDF
Very lastroom symfony1 vers symfony2 en douceur
PPTX
Présentation symfony epita
PDF
Introduction à Symfony2
PDF
Symfony2 Presentation
PDF
Symfony2 & l'architecture Rest
PDF
Dependency Injection Smells
PDF
PHP 5 pour les développeurs Java
PPT
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
PDF
Etude des Frameworks PHP
PPTX
Créer une API GraphQL avec Symfony
PDF
Formation angular js - Constellation
PDF
Symfony 2 : Performances et Optimisations
PPT
Building Single Page Application (SPA) with Symfony2 and AngularJS
PDF
PHP et PHP Framework
PDF
Drupal 8 + Symfony 2 = une équipe gagnante
PDF
Design patterns avec Symfony
Symfony2: 30 astuces et bonnes pratiques
Presentation du framework symfony
Introduction au business modèle des applications mobile
Very lastroom symfony1 vers symfony2 en douceur
Présentation symfony epita
Introduction à Symfony2
Symfony2 Presentation
Symfony2 & l'architecture Rest
Dependency Injection Smells
PHP 5 pour les développeurs Java
Introduction au langage PHP (1ere partie) élaborée par Marouan OMEZZINE
Etude des Frameworks PHP
Créer une API GraphQL avec Symfony
Formation angular js - Constellation
Symfony 2 : Performances et Optimisations
Building Single Page Application (SPA) with Symfony2 and AngularJS
PHP et PHP Framework
Drupal 8 + Symfony 2 = une équipe gagnante
Design patterns avec Symfony
Publicité

Similaire à Symfony 2 : chapitre 3 - Les modèles en Doctrine 2 (17)

PPTX
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
PDF
merise (1).pdf
PPTX
Theme 10
PDF
Programmation Orientée Objet Concept de base
PDF
Chapitre2.pdf
PPTX
Theme 10
PPTX
Design patterns french
PDF
Chapitre 3
PDF
Java cours n° 2 - classe-objet-constructeur
PDF
Cours partie1 elgarrai zineb
PDF
Cours java smi_2011_2012_partie_i_29_octobre_2011
PPTX
Les ontologies et les graphes RDF
PDF
Poo en c++ les relations entre classes
PPTX
Cours BDD.pptx
PDF
ADO_NET_complet.pdf
PPT
Java uik-chap4-poo3
PPTX
ProgrammationO.O.pptx
Chapitre II. METHODE D'ANALYSE P2 MCD .pptx
merise (1).pdf
Theme 10
Programmation Orientée Objet Concept de base
Chapitre2.pdf
Theme 10
Design patterns french
Chapitre 3
Java cours n° 2 - classe-objet-constructeur
Cours partie1 elgarrai zineb
Cours java smi_2011_2012_partie_i_29_octobre_2011
Les ontologies et les graphes RDF
Poo en c++ les relations entre classes
Cours BDD.pptx
ADO_NET_complet.pdf
Java uik-chap4-poo3
ProgrammationO.O.pptx
Publicité

Plus de Abdelkader Rhouati (6)

PPTX
Sept règles d’or pour parler en public
PPT
Initiation au développement mobile sous Android
PPT
Comparaison des CMS
PDF
برنامج جمعية بسمة أمل بوجدة لسنة 2013
PPT
Réussir votre carrière - version arabe
PPT
Réussir sa carrière
Sept règles d’or pour parler en public
Initiation au développement mobile sous Android
Comparaison des CMS
برنامج جمعية بسمة أمل بوجدة لسنة 2013
Réussir votre carrière - version arabe
Réussir sa carrière

Symfony 2 : chapitre 3 - Les modèles en Doctrine 2

  • 1. 1
  • 3. 3 Chapitre 3 : Les modèles en Doctrine
  • 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
  • 7. Créer une entité (Modèle) 7
  • 8. Entité : Liaison vers la table 8
  • 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
  • 17. Récupérer des données à partir d’une entité 3/3  Utiliser les « Query builder » 17

Notes de l'éditeur

  • #15: Doctrine 2 utilise un système de transaction, la méthode flush permet d’acter toutes les persistances déjà faite