Doctrine !

Doctrine !

Doctrine 2 est un mappeur objet-relationnel (ORM) pour PHP 5.4+ qui offre une persistance transparente pour les objets PHP. Il utilise le modèle Data Mapper au cœur, visant à séparer complètement votre domaine / logique commerciale du à la persévérance dans un système de gestion de base de données relationnelle.

Caractéristiques

Une caractéristique de Doctrine est le faible niveau de configuration nécessaire au démarrage d'un projet. La Doctrine peut générer des classes d'objets à partir d'une base de données existante, et le programmeur peut ensuite spécifier des relations et ajouter des fonctionnalités personnalisées aux classes générées. Il n'est pas nécessaire de générer ou de maintenir des schémas de base de données XML complexes, comme on le voit dans de nombreuses autres structures.

Une autre caractéristique clé de la Doctrine est la possibilité d'écrire éventuellement des requêtes de base de données dans un langage SQL OO (orienté objet) appelé DQL (langage Doctrine Query) inspiré du HQL de Hibernate. Alternativement, la classe QueryBuilder (Doctrine_Query dans Doctrine 1.x) permet de construire des requêtes via une interface fluide. Ces interfaces fournissent aux développeurs des solutions de rechange puissantes à SQL qui maintiennent la flexibilité et autorisent encore la commutation des back-ends de la base de données, sans nécessiter la duplication du code.
Cependant, l'écriture explicite de requêtes n'est pas toujours nécessaire, car Doctrine effectue des jointures et récupère automatiquement des objets liés. Les petits projets peuvent être facilement construits sans requêtes.

D'autres caractéristiques notables de Doctrine sont:
  • La prise en charge des crochets (méthodes qui peuvent valider ou modifier l'entrée et la sortie de la base de données) et les auditeurs d'événements pour structurer la logique commerciale;
  • héritage d'agrégation de colonnes (des objets similaires peuvent être stockés dans une table de base de données, avec une colonne de type spécifiant le sous-type de l'objet particulier - la sous-classe correcte est toujours renvoyée lorsqu'une requête est terminée);
  • Un cadre de mise en cache, utilisant plusieurs backends tels que memcached, SQLite ou APC;
  • Transactions ACID;
  • migrations des bases de données;
  • une fonction de "compilation" pour combiner plusieurs fichiers PHP de la structure en un, afin d'éviter les performances frappées habituellement en incluant les nombreux fichiers PHP d'une structure.
Pourquoi utiliser Doctrine?
  • Depuis environ 2006 avec une base de code très stable et de haute qualité.
  • Fonctions de requête et de requêtes extrêmement complexes et puissantes.
  • Prise en charge de la programmation de bases de données de haut niveau et de bas niveau pour tous vos cas d'utilisation.
  • Grande communauté et intégrations avec de nombreuses structures différentes (Symfony, Zend Framework, CodeIgniter, Flow, Lithium et plus encore)