Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks
Bibliothèques et frameworks Forum d'entraide sur les frameworks, templates, bibliothèques de code (PDFLib, eZPdf, JpGraph, Artichow, PEAR, etc). Avant de poster : FAQ bibliothèques, toutes les FAQ PHP et cours bibliothèques
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/12/2010, 02h02   #1
Invité de passage
 
Inscription : juillet 2010
Messages : 33
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 33
Points : 3
Points : 3
Par défaut À quoi sert Doctrine ?

Bonjour,
Je me demande à quoi sert exactement Doctrine.
J'ai un peu cherché sur Google mais je recherche plus de précision
Car je ne comprend pas trop son utilité et son fonctionnement.

Je vous remercie d'avance de vos attention pour ma question
pierrehs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 11h45   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Bonjour

Doctrine et son petit copain Propel sont ce qu'on appelle des ORM (Object Relationnal Mappers). Comme tu le sais sûrement, les application PHP utilisent en grande majorité des stack LAMP (Linux Apache MySQL et PHP).
MySQL est une base de données dite relationnelle, ce qui signifie que les données sont rangées dans des tables liées entre-elles par des relations et des contraintes (par exemple, un étudiant à des contrôles s'exprime par une deux tables "Etudiant" et "Controles" liées entre elles par une table "Etudiant_has_Controles").

Dans la mesure où de plus en plus d'application sont écrites en PHP Orienté Object, la possibilité d'utiliser ces structures de données avec de l'objet s'est fait sentir; c'est là qu'interviennent les ORM.
Doctrine, pour ne parler que de lui, est capable de comprendre une structure de base de données exprimée dans des descripteurs YAML (YAML Ain't Markup Language) pour créer des objets qui caractérisent des vues sur les données d'une base de données.
Il devient dès lors possible d'utiliser des entités de ta base sous la forme
Code :
1
2
3
 
$etudiant = new Etudiant($id);
$etudiant->setName('Roger');
Ce qui est beaucoup plus confortable et surtout plus flexible que d'utiliser des requêtes classiques (désormais masquées par Doctrine qui fait tout le travail pour toi).

Doctrine est utilisé notamment dans des framework PHP comme Symphony mais tu peux l'utiliser indépendamment. A noter tout de même que de telles fonctionnalités sont assez lourdes et que si ton modèle de base de données était déjà pourri au départ, ça n'améliorera pas les choses d'utiliser un ORM.

Les ORM sont très utiles pour les gros projets mais pour faire un site vitrine ou ce genre de chose, ce n'est pas nécéssaire.
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 20h18   #3
Invité de passage
 
Inscription : juillet 2010
Messages : 33
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 33
Points : 3
Points : 3
Merci je comprends maintenant un peu mieux.
Donc Doctrine n'a rien avoir avec les bibliothèques d'abstractions destinées à communiquer avec différents SGDB ?
pierrehs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2010, 20h22   #4
Responsable Qt & Web sémantique

 
Avatar de dourouc05
 
Homme Thibaut Cuvelier
Étudiant
Inscription : août 2008
Messages : 16 269
Détails du profil
Informations personnelles :
Nom : Homme Thibaut Cuvelier
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Enseignement

Informations forums :
Inscription : août 2008
Messages : 16 269
Points : 49 811
Points : 49 811
Envoyer un message via MSN à dourouc05 Envoyer un message via Yahoo à dourouc05
Citation:
Envoyé par pierrehs Voir le message
Donc Doctrine n'a rien avoir avec les bibliothèques d'abstractions destinées à communiquer avec différents SGDB ?
Doctrine se base sur de telles bibliothèques pour éviter de recoder des parties d'une manière dépendante d'un DBMS, sur une couche d'abstraction de la base de données, DBAL (pour schématiser : tu demandes à Doctrine d'insérer un objet, Doctrine regarde tout ce qu'il faut dans ton modèle et passe une requête à DBAL, qui se charge de la transcrire en SQL et de le passer au DBMS et d'en retourner les résultats à Doctrine, Doctrine qui les hydrate pour que tu puisses les utiliser dans un objet). C'est le principe de base des ORM, c'est à peu près comme ça qu'ils fonctionnent tous (parfois en une seule brique logicielle).
__________________
Le troisième défi Qt !

Vous souhaitez participer aux rubriques Qt ou PyQt/PySide (tutoriels, FAQ, traductions, sources) ? Contactez-moi par MP.

Qt : La FAQ : 200 QR
symfony : sfDoctrineGuard

Pas de question d'ordre technique par MP !
dourouc05 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h19.


 
 
 
 
Partenaires

Hébergement Web