La couche ORM

WRInaute passionné
Bonjour,

Je viens de tomber sur l'article suivant qui essaie d'envisager l'avenir de MySQL
http://www.journaldunet.com/solutions/acteurs/avenir-mysql/patrice-bertrand-smile-1.shtml

Pendant longtemps, il a manqué pendant longtemps de frameworks dans le développement PHP, pour avoir une vraie modélisation objet, et une couche ORM qui permette de rendre une application indépendante de sa base de données.

Depuis deux ou trois ans, ce n'est plus le cas, grâce à différents frameworks. Mais tous les produits n'ont pas encore suivi le mouvement, et beaucoup d'entre eux sont encore dépendants de MySQL. Il faut mettre en priorité cette dissociation.

À partir de cette fin d'interview je souhaites poser un contre argument à un discours auquel j'adhère pourtant entièrement au sujet de l'ORM.

Sur l'extrait de phrase mis en gras, que répondriez-vous à la remarque suivante :

Oui, l'application devient indépendante de la base de données. C'est pratique lorsque l'on souhaite volontairement changer de solution ou lorsqu'un projet vient à disparaitre.

Mais de l'autre coté on devient très dépendant de notre solution ORM si elle n'est pas intégré au langage nativement. Nous dépendons de la pérennité de notre framework. Je pense notamment à titre d'exemple à Zend_Db qui vient d'être abonné.

Dans le deux situations l'application est à retrvailler. La question est la suivante vaut-il mieux être dépendant de sa base de données ou de son framework d'ORM ?

Dorian
 
WRInaute accro
Un ORM n'a pas pour seule utilité de servir de surcouche à SQL.

Que ce soit Doctrine, Zend_Db, ActiveRecord ou tout autre en PHP ou non (berk PHP), tous les ORM gèrent les relations entre tables (généralement en implémentant le model de MVC).
C'est un plus non négligeable que de pouvoir récupérer les données d'une base et de toutes ses bases associées sans avoir à se prendre la tête pendant 45 minutes sur une requête SQL complexe.

Quant à l'évolution de ces ORM, c'est quasiment inévitable. SQL évolue également , même si c'est devenu suffisamment stable pour que l'on s'en rende moins compte.
A mon avis, l'erreur serait surtout de considérer une application (ou un site) terminée et figée à un moment donné.
Toute application doit, de toute façon évoluer afin de rester dans son temps, notamment en mettant à jour les librairies qu'elle utilise.


P.S. : désolé pour les trolls anti PHP qui se sont glissés dans mon message :mrgreen:
 
WRInaute passionné
D'accord sur le fait que l'ORM simplifie grandement l'exploitation et la maintenance grâce aux modèles. D'autant plus si on utilise un mode agressif comme tu l'évoques.

Mais le fond de la question reste bien sur la pérennité des solutions. Visiblement tu accorderais plus ta confiance à un ORM qu'à une base de données ? Curieusement moi l'inverse, j'ai tendance à penser que les libraries et les frameworks sont plus "volatiles" que les bases de données.
 
WRInaute accro
Je n'accorderai pas ma confiance à n'importe quel ORM.
Tout comme je n'accorderai pas ma confiance à n'importe quelle base de données.

Le gros avantage de ces ORM étant notamment la possibilité (surtout théorique à l'heure actuelle) de passer d'un système SQL vers un système non SQL.
C'est particulièrement pratique lorsque l'on travaille sur des applications utilisant des bases de données comme CouchDB par exemple.
 
Haut