Doctrine (ORM)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Doctrine
Première version 2006
Dernière version 2.5.0 ()
Version avancée 2.5.1
Écrit en PHP
Type bibliothèque logicielleVoir et modifier les données sur Wikidata
Site web www.doctrine-project.org


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.
Doctrine est l'ORM par défaut du framework Symfony (depuis la version 1.3 de ce framework). Cependant son utilisation dans le cadre d'un projet développé avec Symfony est optionnelle. De plus, il peut être utilisé avec de nombreux autres frameworks tels que Zend Framework, CodeIgniter, FLOW3 ou encore Lithium.

Doctrine Query Language[modifier | modifier le code]

Le Doctrine Query Langage (DQL) est un langage de requête orienté objet propre à Doctrine. Il peut être utilisé à la place du langage SQL pour créer les requêtes d'accès et de manipulation des données de la base de données. Sa syntaxe s'inspire du Hibernate Query Langage, le langage de requête d'Hibernate, et du Java Persistence Query Language, celui de JPA.

Exemples d'utilisation[modifier | modifier le code]

Ce modèle est-il pertinent ? Cliquez pour voir d'autres.
Cet article relève du guide pratique, ce qui n'est pas de nature encyclopédique (juillet 2015).

Vous pouvez reformuler les passages concernés, ou remplacer ce bandeau soit par {{pour Wikilivres}} (ou {{pour Wikibooks}}), {{pour Wikiversité}}, ou {{pour Wikivoyage}}, afin de demander le transfert vers un projet frère plus approprié.

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 un résultat, 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é en 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]