Pré-requis

Include en PHP
POO en PHP

Voir aussi

Doctrine (en)

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
Ici vous pouvez apprendre :
1.Introduction
2.Installation de PHP
3.Exécuter un script PHP
4.Configuration et environnement d'exécution de PHP
5.L'environnement de développement
6.Le langage PHP
6.1.Introduction
6.2.Mon premier script
6.3.La syntaxe
6.4.Les boucles (for, while, foreach, do) en PHP
6.5.Les tableaux (array) en PHP
6.6.Les fonctions
6.7.Include
6.8.Programmation orientée objet
6.9.Les fonctions de manipulation de tableaux
6.10.Les dates
6.11.Fichiers et répertoires
6.12.Les paramètres d'entrée d'un script PHP
6.13.Utilisation de la librairie graphique
6.14.JpGraph pour tracer courbes et diagrammes
6.15.Utilisation de bases de données avec PHP
6.15.1.Introduction
6.15.2.Utilisation de SQLite
6.15.3.PHP et MySQL (avec MySQLi)
6.15.4.Utilisation de MySQL avec PHP
6.15.5.PDO: PHP Data Objects
6.15.6.Association Objet-Relationnel (ORM) avec Doctrine
6.15.6.1.Introduction
6.15.6.2.Installation
6.15.6.3.Inclusion
6.15.6.4.Connexion
6.15.6.5.Déclaration d'un objet simple
6.15.6.6.Création de la table associée à l'objet
6.15.6.7.Enregistrement d'un objet
6.16.LDAP
6.17.Parser un document XML
6.18.Génération de documents PDF en PHP
6.19.Envoyer un mail
6.20.Créer un webmail avec IMAP
6.21.Droits utilisateurs: chmod 777
6.22.Localization (l10n) et Traduction
7.PHP pour le web
8.Internationalisation (i18n) et encodage en PHP
9.Créer un fichier de logs/traces
10.Déboguer une application PHP
11.Programmer en PHP en toute sécurité
12.Bibilothèque PEAR
13.Zend Framework 2 et 3
14.Installation de Zend Framework 2
15.Joomla
16.Composer
17.PHPUnit
18.PHPDocumentor
19.Mesure de temps d'exécution (benchmark) d'une fonction PHP
20.Exemples de scripts PHP
21.Erreurs fréquentes et les solutions
22.Archives
Version imprimable: imprimer