6.Le langage PHP
6.15.Utilisation de bases de données avec PHP
6.15.6.Association Objet-Relationnel (ORM) avec Doctrine
6.15.6.1.Introduction
Dans les chapitres précédents nous avons vu comme il est possible d'utiliser les bases de données MySQL et SQLite. Nous avons également constaté qu'il peut être intéressant d'utiliser une bibliothèque comme PDO afin d'utiliser en grande partie (mais pas totalement) le même code source quelle que soit la base utilisée.
Depuis que vous avez découvert la programmation orienté objet vous en êtes sans doute devenu fan (du moins nous l'espérons) et vous constatez qu'il devient fastidieux d'écrire tout le code nécessaire à la sauvegarde et la lecture de ces objets en base: Il faut convertir les attributs des objets en champs dans les tables, convertir les liens entre objets en liens entre enregistrements de différentes tables (on parle de mapping objet relationnel ou acronyme anglais ORM).
Nous allons vous présenter, dans ce chapitre, une introduction à la bibliothèque Doctrine, chargée de simplifier grandement la sauvegarde/lecture d'objets en base.
6.15.6.2.Installation
Doctrine peut être téléchargé en suivant ce lien [
Télécharger Doctrine]. Ce tutoriel s'appuie sur la version 1.1 (et le paquet Sandbox n'est pas nécessaire dans l'immédiat).
Décompressez ce fichier dans un espace temporaire et copiez, dans votre espace web, le contenu du dossier lib/ que vous trouverez sous Doctrine-1.1.0/. Vous devez y trouver un fichier Doctrine.php et un dossier Doctrine/.
6.15.6.3.Inclusion
L'utilisation de Doctrine, requiert l'inclusion du fichier
Doctrine.php et l'appel au code
spl_autoload_register(array('Doctrine', 'autoload'));
Il est alors possible de faire appel à toutes les classes de Doctrine et notamment celle permettant la connexion à une base de données.
6.15.6.4.Connexion
La connexion à la base de données se fait via la classe
Doctrine_Manager et sa méthode statique
connection(). Cette méthode prend 2 paramètres:
- Une chaîne contenant les paramètres de connexion à la base
- Un identifiant (optionnel), sous forme de chaîne de caractères, que l'on veut donner à la connexion
|
La chaîne des paramètres de connexion peut s'écrire en suivant le format PEAR <typedebase>://<utilisateur>:<motdepasse>@<protocole>+<serveur>:<port>/<nombase>?<options>. Où le type de base peut être (entre autres)
-
sqlite pour SQLite
-
mysql pour MySQL
-
pgsql pour PostreSQL
|
Ce qui donne donc, par exemple, mysql://utilisateur:motdepasse@serveur/mabase pour MySQL et
sqlite://mabase.sqlite avec SQLite pour un fichier mabase.sqlite