La programmation orientée objet a fini par prendre une part importante dans le monde de PHP. Bien qu’à priori simple, le besoin récurrent de faire communiquer un code orienté objet avec des sources de données extérieures telles que des base de données cache une grande complexité.
Comment faire correspondre facilement nos objets PHP aux informations dans la base de données ? Comment maintenir la cohérence entre le modèle objet de l’application et le schéma de la base de données ?
Ces problématiques, communes à tous les langages, ont été résolues grâce au mapping objet-relation (Object-Relational Mapping ou ORM). Cette technique permet d’établir un lien étroit entre notre modèle de données et la base de données relationnelles et nous donne ainsi le sentiment d’avoir une base de données orientée objet.
Le sigle ORM (*Object-Relational Mapper*) est aussi utilisé pour désigner les librairies qui implémentent cette technique.
Dans le monde du PHP, plusieurs librairies permettent de remplir ce besoin. nous pouvons citer Propel ou encore Eloquent (L’ORM de Laravel).
Et parmi toutes ces librairies, nous allons découvrir Doctrine 2 qui est très mature et largement supportée par presque tous les frameworks de l’écosystème de PHP (Symfony, Zend Framework, etc.). Nous aborderons entre autres :
- comment installer et configurer Doctrine 2 ;
- comment modéliser un système de données orienté objet avec Doctrine 2 ;
- comment exploiter une base de données avec Doctrine 2.
Il est important de souligner que l’utilisation d’un ORM nécessite une bonne connaissance de la programmation orientée objet en PHP et des notions en modélisation avec des méthodes d’analyse et de conception comme UML1, Merise, etc.
Pour suivre ce cours, il faudra aussi savoir installer et utiliser le gestionnaire de dépendances Composer ainsi qu’un moteur de base de données relationnelle (MySQL, PostgreSQL, MSSQL, Oracle, etc.).
-
Unified Modeling Language - Langage de modélisation unifié
↩
Les bases de Doctrine 2
-
Installation et configuration de Doctrine 2
-
Sauvegarder des entités grâce à Doctrine
-
Récupérer des entités avec Doctrine
-
Modifier et supprimer des entités
Les relations avec Doctrine 2
-
Relation OneToOne - 1..1
-
Relation ManyToOne et OneToMany - 1..n
-
Relation ManyToMany - n..m
-
TP : Finir la modélisation du sytème de sondage
Exploiter une base de données avec Doctrine 2
-
À la rencontre du QueryBuilder
-
Optimiser l'utilisation de Doctrine
-
Configurer Doctrine pour la production
-
Annexes
Nous avons pu voir tout au long de ce cours que Doctrine apporte une grande facilité dans le traitement des données, le maintien de la cohérence du modèle et la gestion des relations entre les entités.
Les utilitaires en ligne de commandes permettent d’avoir un contrôle total sur la configuration et l’état de notre base de données.
En utilisant Doctrine, il est donc possible de créer et d’exploiter un schéma de données complet sans écrire une seule ligne de SQL.
Retenez néanmoins qu’il existe encore beaucoup de sujets à découvrir et que la documentation officielle reste la référence la plus complète si vous voulez approfondir votre apprentissage de Doctrine.