Utiliser un ORM en PHP ?

Salutations !
Je suis un petit belge, je fais ce que vous appelleriez en france un DUT en développement WEB. Et pour mon Travail de fin d'études que je fais en PHP et en POO, je songe à utiliser un ORM (Object Relationnal Mapping), en gros si j'ai bien compris le concept, l'idée c'est de rajouter une couche entre mon code PHP et ma base de données, pour faciliter l'accès, et surtout que si la DB change, mon code ne doit pas changer, juste la config de l'ORM.

Du coup, est ce que quelqu'un a déjà utilisé ça ? Est ce qu'en vrai ça roxx du poney comme sur le papier ? Et est ce que vous en avez à recommander ou à ne surtout pas utiliser ?

Bonne journée les amilous !

Poster un commentaire
Offerzo
Offerzo
8 ans

J'utilise idiorm qui fait le job.
https://github.com/j4mie/idiorm

Tu peux le coupler avec Paris
https://github.com/j4mie/paris

NoxWorld
NoxWorld
8 ans

@Offerzo: Ils font le même travail a peu de choses près non ?
Ca tourne avec php7 ?

Offerzo
Offerzo
8 ans

@NoxWorld: Paris est basé sur idiorm : http://j4mie.github.io/idiormandparis/
Pas testé sous php7 mais je vois pas de raison pour que ca marche pas

anonyme
anonyme
8 ans

doctrine maggle

par contre quand tu dis que ton code ne doit pas changer, c'est faux à moitié, il va changer certes, mais moins que sans

NoxWorld
NoxWorld
8 ans

@rekted: Ah ? Tu peux développer un peu ? Parce que moi j'avais compris que justement il ne changeait pratiquement pas. Genre ton code ne change pas, tu configures l'ORM pour la nouvelle base de données et il fait la transition.
C'est pas comme ça ?

critikal
critikal
8 ans

@NoxWorld: ton code métier <-> ta couché ORM <-> ta BDD.

Si ton schéma de BDD change, il faut adapter tes objets de ton ORM pour continuer à etre en accord avec ton schéma de BDD. Ton code métier peut donc évoluer également car il va traiter des objets qui auront un peu changé (de nouveaux champs, de nouvelles conditions, etc.)

Là où tu as un réel avantage, c'est lorsque tu change de système de BDD (faire attention tout de même à quels systèmes ton ORM est compatible).

Tu peux travailler en local avec du MySQL, tu configure ton ORM pour échanger avec MySQL. Et lorsque tu migre ton code sur un autre serveur, et que l'on t'impose un autre système de BDD, exemple PostgreSQL, et bien tu as aura juste à changer ta configuration ORM, mais ton code métier et tes modèles ORM n'auront pas à changer.

Exemple :
http://doctrine-orm.readthedocs.org/projects/doctrine-dbal/en/latest/reference/types.html#mapping-matrix

Si tu regarde la section 8.2 mapping matrix, tu verra a peu près les différents SGBD que supporte Doctrine

Vaval
Vaval
8 ans

Eloquent (de Laravel) fait aussi bien le job et est plus souple que Doctrine. Pas besoin de configurer la liste des champs de la table sur ton Model, par exemple. Pas conseillé pour les puristes mais il est efficace.
https://github.com/illuminate/database

CakePHP doit avoir un ORM similaire.

Cette page est réservée aux ADULTES

Tu es sur le point d'accéder à un site web qui contient du matériel explicite (pornographie).

Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.


En accédant à ce site, tu acceptes nos conditions d'utilisation.