Doctrine (ORM)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

Doctrine est un ORM (couche d'abstraction à la base de données) pour PHP. Il s'agit d'un logiciel libre sous licence GNU LGPL.
Il s'agit de l'ORM par défaut du framework Symfony (depuis la version 1.3 de ce framework).

Exemples d'utilisation[modifier | modifier le code]

Select[modifier | modifier le code]

  $users = Doctrine::getTable('users')->findAll();
  foreach($users as $user)
   echo "<h2>$user->name</h2>";

en fonction php :

  function returnDescriptionDeCategorie ($id) {
	$q = Doctrine_Query::CREATE()
	->select('description')
	->from('Categorie c')
	->where('c.id_categorie = ?',$id);
	return $q->fetchOne();

FetchOne retourne 1 resultat, FetchArray, un tableau. Ceci compte le nombre d'enregistrements pour une relation.

$q = Doctrine_Query::create()
    ->select('u.*, COUNT(DISTINCT p.id) AS num_phonenumbers')
    ->from('User u')
    ->leftJoin('u.Phonenumbers p')
    ->groupBy('u.id');
$users = $q->fetchArray();
 
echo $users[0]['Phonenumbers'][0]['num_phonenumbers'];

Insert[modifier | modifier le code]

 $user = new User();
 $user->name = "john";
 $user->password = "doe";
 $user->save();
 
 echo "L'utilisateur avec l'id " . $user->id . " a été ajouté";

Update[modifier | modifier le code]

  $user = Doctrine::getTable('user')->findOneById(2);
  $user->phone = "+33 1 23 45 67 89";
  $user->save();

Delete[modifier | modifier le code]

  $user = Doctrine::getTable('user')->findBySlug("kevin-smith");
  $user->remove();

Histoire[modifier | modifier le code]

Le projet Doctrine a été lancé par Konsta Vesterinen en 2006. Il repose sur une communauté de développeurs et reçoit des contributions, notamment du projet Google Summer of Code.

Doctrine 1.0.0 a été publié 2008[1].

La première version stable de Doctrine 2.0 date de 2010[2].

Influences[modifier | modifier le code]

Doctrine a été influencé par de nombreux projets et de nombreuses personnes. La principale influence est l'ORM Java Hibernate. Le but du projet Doctrine est de fournir un outil équivalent dans le langage PHP.

Références[modifier | modifier le code]

Liens externes[modifier | modifier le code]