26.06.2013 Views

FAQ PHP

FAQ PHP

FAQ PHP

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>FAQ</strong> <strong>PHP</strong><br />

Sommaire > Bases de données > Mapping objet relationnel (ORM) et persistance > Doctrine<br />

Auteurs : Guillaume Rossolini ,<br />

Qu'est-ce que Doctrine ?<br />

Doctrine est une bibliothèque d' ORM pour <strong>PHP</strong>. Elle repose sur l'extension PDO.<br />

Auteurs : Guillaume Rossolini ,<br />

Comment installer Doctrine ?<br />

Il faut télécharger la dernière version des scripts via SubVersion : http://www.phpdoctrine.org/trac/wiki/<br />

doctrineSvn<br />

PDO et le driver de votre BDD pour PDO doivent également être activés, et <strong>PHP</strong> >= 5.1 est nécessaire.<br />

Commande SVN permettant de récupérer les sources :<br />

svn co http://doctrine.pengus.net/svn/trunk .<br />

lien : Comment installer une bibliothèque ?<br />

lien : Comment installer une extension pour <strong>PHP</strong> ?<br />

Auteurs : Guillaume Rossolini ,<br />

Comment fonctionne Doctrine ?<br />

Doctrine permet d'utiliser une base de données sans écrire de requêtes SQL, en utilisant des classes<br />

personnalisées.<br />

Il faut mettre les classes personnalisées (dérivées de Doctrine_Record) dans un répertoire, par exemple<br />

"/models", ce qui permet à Doctrine de les utiliser pour deviner la structure de la base de données (c'est<br />

la persistance).<br />

Chaque classe doit définir sa structure (ses champs) et les relations avec les autres classes. Doctrine<br />

s'occupe des relations (JOIN entre tables, clefs étrangères).<br />

Auteurs : Guillaume Rossolini ,<br />

Comment gérer la persistance avec Doctrine ?<br />

Avec Doctrine, il y a deux manières de gérer la persistance des objets vers la BDD : tout un répertoire de<br />

classes, ou bien une liste précise de classes.<br />

Structure des répertoires :<br />

models<br />

User.php<br />

Message.php<br />

models/User.php<br />

<br />

Exporter toutes les classes d'un répertoire :<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!