Marc MOREAU - Logo

DOCTRINE ORM

Mappeur d'objets relationnel PHP et couche d'abstraction de base de données

Qui a besoin de persistance ?

Le projet Doctrine héberge plusieurs bibliothèques PHP principalement axées sur le stockage de bases de données et le mappage d'objets. Les projets principaux sont l'ORM (Object Relational Mapper) et la couche d'abstraction de base de données (DBAL) sur laquelle il est construit.

L'une des caractéristiques de Doctrine est le faible niveau de configuration nécessaire pour démarrer un projet. Doctrine peut générer des classes d'objets à partir d'une base de données existante. Le programmeur peut ensuite spécifier des relations et ajouter une fonctionnalité personnalisée aux classes générées. Il n'est pas nécessaire de générer ou de gérer des schémas de base de données XML complexes, comme dans de nombreux autres frameworks.

Une autre caractéristique clé de Doctrine est la possibilité d'écrire éventuellement des requêtes de base de données dans un dialecte SQL OO (orienté objet) appelé DQL (Doctrine Query Language) inspiré par la HQL d'Hibernate. Alternativement, la classe QueryBuilder (Doctrine_Query dans Doctrine 1.x) permet de construire des requêtes via une interface fluide. Ces interfaces offrent aux développeurs de puissantes alternatives à SQL qui conservent la flexibilité tout en permettant le basculement des bases de données, sans nécessiter de duplication de code.

Mise en oeuvre

J'ai utilisé Doctrine dans divers projets pour WHAT A FIX et Enoptea, aussi bien avec de la base de donnée MySQL, qu'avec de la base de donnée MongoDB derrière.
Cela m'a appris et à créer, maintenir et faire évoluer des schémas de données que ce soient en mode code-first ou à parti d'un schéma de donné pré éxistant.

Vision

Doctrine est puissant, il permet la gestion et la maintenance des données depuis un schéma existant ou "from scratch" ! Un module de simplification et d'harmonisation des requêtes est présent. Ainsi qu'un système de registre interne qui permet de ne pas rappeler la base de données inutilement, si les données sont déjà en cache et n'ont pas été modifiées.

4 Projets utilisant cette compétence

  • waf-bill.png

    WHAT A FIX Librairie & Platforme de facturation Voir ce projet

    Bibliothèque de facturation PHP développée à partir de zéro, ainsi qu'une plateforme dédiée à la manipulation et à la gestion de la facturation.
  • waf-sinistros.png

    WHAT A FIX Sinistros Voir ce projet

    Plateforme dématérialisé de gestion des bâtiments pour les professionels de l'immobilier
  • enoptea.png

    ENOPTEA Gestion de l'énergie Voir ce projet

    Conçu pour négocier et acheter de l'énergie ainsi que pour optimiser les contrats d'énergie
  • waf_tax_reduce.png

    Tax réduite La plateforme Voir ce projet

    Développé pour les professionnels afin de les aider à gérer leurs formulaires de réduction de TVA